我正在使用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,也许这种情况会检查文件?或者问题是转换为字节数组?你能给我一些建议,谢谢。
答案 0 :(得分:0)
正如你所说,你有两个步骤:
1-上传zip文件
2-在数据库中插入zip文件
如果步骤1正确完成,您将获得成功,表明该文件已从客户端正确传输到服务器,之后您执行的操作不受GwtUpload管理。
所以我猜你在尝试将文件插入数据库时发生了损坏。如果您使用的是MySQL请尝试http://www.codejava.net/java-se/jdbc/insert-file-data-into-mysql-database-using-jdbc