0

だから私は 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 ページに従いましたが、ある時点で間違っていたのかもしれません。

Apache の FileUpload

Resumable.js

4

1 に答える 1

1

ディレクトリの場所は重要です。WAR のコンテキスト内にある必要があります。コンテナーのコンテキスト外の場所に書き込むことはできません。ログを見ると、これを説明するエラー メッセージが表示される場合があります。

于 2013-01-22T18:52:21.470 に答える