现在的位置: 首页 > 综合 > 正文

Work with a file upload and download controls2

2012年10月10日 ⁄ 综合 ⁄ 共 1934字 ⁄ 字号 评论关闭
Table of Contents

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.

抱歉!评论已关闭.