在GWT上的服务器上传后文件损坏

时间:2015-03-02 15:46:56

标签: gwt file-upload

我正在使用gwtupload.client.MultiUploader在GWT中上传服务器上的zip文件。然后在服务器上我将zip文件转换为字节数组以插入数据库。结果,数据库中50%的文件被破坏。这是我的一些代码。

@UiField(provided = true)
MultiUploader muplDef;

public MyClass(){
        muplDef = new MultiUploader();
        muplDef.setValidExtensions("zip");
        muplDef.addOnFinishUploadHandler(onFinishUploaderHandler);
        muplDef.addOnCancelUploadHandler(onCancelUploaderHander);
}

private final IUploader.OnFinishUploaderHandler onFinishUploaderHandler = new IUploader.OnFinishUploaderHandler() {
        @SuppressWarnings("incomplete-switch")
        @Override
        public void onFinish(IUploader uploader) {
            switch (uploader.getStatus()) {

            case SUCCESS:
                attachZip = true;
            }
        }
    };
    private final IUploader.OnCancelUploaderHandler onCancelUploaderHander = new IUploader.OnCancelUploaderHandler() {
        @Override
        public void onCancel(IUploader uploader) {
            attachZip = false;
        }
    };

字节数组

String fileName = "D:\1.zip";
                File f = new File(fileName);
                byte[] edocBinary = new byte[(int) f.length()];
                RandomAccessFile ff;
                try {
                    ff = new RandomAccessFile(f, "r");
                    ff.readFully(edocBinary);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

我的问题是:即使我有OnFinishUploaderHandler和案例:SUCCESS,文件也可以被更正?还有其他情况如ERROR,也许这种情况会检查文件?或者问题是转换为字节数组?你能给我一些建议,谢谢。

1 个答案:

答案 0 :(得分:0)

正如你所说,你有两个步骤:

1-上传zip文件

2-在数据库中插入zip文件

如果步骤1正确完成,您将获得成功,表明该文件已从客户端正确传输到服务器,之后您执行的操作不受GwtUpload管理。

所以我猜你在尝试将文件插入数据库时​​发生了损坏。如果您使用的是MySQL请尝试http://www.codejava.net/java-se/jdbc/insert-file-data-into-mysql-database-using-jdbc