1

これは私のサーブレットの一部です:

public void doPost(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {

    @SuppressWarnings("deprecation")
    Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);

    UserService userService = UserServiceFactory.getUserService();
    User user = userService.getCurrentUser();

    ServletFileUpload upload = new ServletFileUpload();
    FileItemIterator iterator;

    try {
        iterator = upload.getItemIterator(req);
        Picture pic = null;
        PictureAccess access = null;
        while(iterator.hasNext()){
            FileItemStream item = iterator.next(); 

            pic = new Picture( blobs.get(item.getFieldName()).getKeyString() );

            access = new PictureAccess();
            access.addPictures(pic, user.getEmail() );
        }

    } catch (FileUploadException e) {
        e.printStackTrace();
    }

    res.sendRedirect("/user/picture/upload.jsp");
}

私のクライアント側では、JavaScript を使用してファイルの名前を変更しました。

<script type="text/javascript">

    function uploadFile() {
        if (window.File && window.FileList) {
            var fd = new FormData();
            var files = document.getElementById('fileToUpload').files;
            for ( var i = 0; i < files.length; i++) {
                fd.append("file" + i, files[i]);
            }
            var xhr = new XMLHttpRequest();
            xhr.open("POST", document.getElementById('uploadForm').action);
            xhr.send(fd);

            alert('already saved');
            document.getElementById('uploadForm').value = '';

        } else {
            document.getElementById('uploadForm').submit(); //no html5
        }
    }

</script>

私のhtml/jspで:

<form id="uploadForm" enctype="multipart/form-data" method="post" action="<%= blobstoreService.createUploadUrl("/user/uploadPics") %>">
     <input type="file" name="fileToUpload" id="fileToUpload" multiple="multiple" size="5"/>
     <input type="button" onclick="uploadFile();" value="Upload" />
</form>

上記のコードは開発マシンでは機能しますが、デプロイ時には機能しません。考えられるエラーと問題の解決策は何ですか? appengine でエラーを確認するにはどうすればよいですか?

4

1 に答える 1

3

非推奨のメソッドgetUploadedBlobs(..) は をサポートしていませんmultiple='true'getUploads(..)代わりに使用してみてください。

于 2012-05-23T04:30:35.657 に答える