您的位置:首页 > 其它

Work with a file upload and download controls2

2011-03-04 21:33 337 查看
Table of Contents
1 Restrict the size of uploaded files
2 Limiting file types for upload
3 How to process an uploaded file
4 How to enable large file uploads in Domino

Restrict the size of uploaded files

Set in Application Properties -> XPage Properties -> File Upload max size .

Limiting file types for upload

You can set define which file types are allowed to be uploaded in the upload control -> all properties -> basics -> accept.

Read details in Domino Designer Wiki

.

How to process an uploaded file

Place code like this in the beforeRenderResponse event of an XPage to get a handle to a just-uploaded file:

var con = facesContext.getExternalContext();
var request:com.sun.faces.context.MyHttpServletRequestWrapper = con.getRequest();
var map:java.util.Map = request.getParameterMap();
var fileDataName = "file"; //name of the POST request parameter that contains the file
var fileData:com.ibm.xsp.http.UploadedFile = map.get( fileDataName );
var tempFile:java.io.File = fileData.getServerFile();


The file is in the "xspupload" directory on the Domino Server and has some crypting filename. You can get the original filename with fileData.getClientFileName().

For example, you can attach the file to some Notes document with code like this:

var correctedFile = new java.io.File( tempFile.getParentFile().getAbsolutePath() + java.io.File.separator + fileData.getClientFileName() );
var success = tempFile.renameTo(correctedFile); //rtFiles is a rich text item on a notesdocument of your chosing rtFiles.embedObject(lotus.domino.local.EmbeddedObject.EMBED_ATTACHMENT, "", correctedFile.getAbsolutePath(), null);
correctedFile.renameTo(tempFile);


This snippet renames the temporary file to the orginal filename, attaches it to a RichText item and renames it back to the cryptic name (so that it will be deleted by Domino after processing).

How to enable large file uploads in Domino

Open the server document in the Domino Directory, go to Internet Protocols/HTTP and then to the "HTTP Protocol Limits" section.
Set the fields "Maximum size of request content" and "Maximum POST data" to the same value (for example 20.480 for a 20MB limit).
Then set this limit in your application in Application Properties -> XPage Properties -> File Upload max size.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: