だから私は resumable.js を使ってファイルをサーバーにアップロードしています。
保存したいディレクトリは次のようなものです
/dir/files/upload/
明らかに作り物ですが、このディレクトリには書き込み権限があります。resumable.js が作成する POST リクエストをリッスンするために JSP を使用しています。
.part
ファイルをそのディレクトリに移動します。サンプルリスナー:
<% if(request.getMethod().equals("POST") && request.getParameter("resumableFilename") != null){
long chunkSize = StringUtils.isEmpty(request.getParameter("resumableChunkSize"))? 0:Long.parseLong(request.getParameter("resumableChunkSize"));
String fileName = request.getParameter("resumableFilename");
long totalSize = StringUtils.isEmpty(request.getParameter("resumableTotalSize"))? 0:Long.parseLong(request.getParameter("resumableTotalSize"));
String temp_dir = "/dir/files/upload/"+request.getParameter("resumableIdentifier");//Add in user_id
String dest_dir = temp_dir+fileName+".part"+request.getParameter("resumableChunkNumber");
File fDir = new File(temp_dir);
fDir.mkdirs();
if(ServletFileUpload.isMultipartContent(request)){
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(temp_dir)); ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request);
ArrayListIterator iter = (ArrayListIterator)items.iterator();
FileItem item = (FileItem)iter.next();
File fileWithNewDir = new File(dest_dir);
item.write(fileWithNewDir); // write file to dest_dir (fileName.part*CHUNK_NUM*)
}
}
%>
スクリプトはでホストされています
www.site.com/pubs/res.jsp
レジューム用の JS 自体によると、アップロードのプロセスは完了しますが、新しいディレクトリはまったく作成されません。書き込み権限ではないことはわかっているので、別のものでなければなりません。
これは、新しい再開可能なオブジェクトの JavaScript での私の呼び出しです。
var resume = new Resumable({
target:"res.jsp",
resumableChunkSize: 1*1024*1024,
simultaneousUploads: 3,
testChunks: false,
throttleProgressCallbacks: 1
});
jspファイルにヒットしているようですが、何も起こっていません。
そのリスナーを実装するために Apache の fileupload ページに従いましたが、ある時点で間違っていたのかもしれません。