Ski*_*zzo 3 java vaadin vaadin7
我使用vaadin(7.1.9)的上传组件,现在我的问题是,我不能够限制什么样的可以与上传组件向服务器发送的文件,但我还没有发现任何用于此目的的API.唯一的方法是在上传后丢弃错误类型的文件.
public OutputStream receiveUpload(String filename, String mimeType) {
if(!checkIfAValidType(filename)){
upload.interruptUpload();
}
return out;
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?
小智 7
不,这不是正确的方法.事实上,Vaadin提供了许多有用的界面,您可以使用它们来监控上传开始,中断,完成或失败的时间.这是一个清单:
com.vaadin.ui.Upload.FailedListener;
com.vaadin.ui.Upload.FinishedListener;
com.vaadin.ui.Upload.ProgressListener;
com.vaadin.ui.Upload.Receiver;
com.vaadin.ui.Upload.StartedListener;
Run Code Online (Sandbox Code Playgroud)
这是一个代码片段,为您举个例子:
@Override
public void uploadStarted(StartedEvent event) {
// TODO Auto-generated method stub
System.out.println("***Upload: uploadStarted()");
String contentType = event.getMIMEType();
boolean allowed = false;
for(int i=0;i<allowedMimeTypes.size();i++){
if(contentType.equalsIgnoreCase(allowedMimeTypes.get(i))){
allowed = true;
break;
}
}
if(allowed){
fileNameLabel.setValue(event.getFilename());
progressBar.setValue(0f);
progressBar.setVisible(true);
cancelButton.setVisible(true);
upload.setEnabled(false);
}else{
Notification.show("Error", "\nAllowed MIME: "+allowedMimeTypes, Type.ERROR_MESSAGE);
upload.interruptUpload();
}
}
Run Code Online (Sandbox Code Playgroud)
这里,allowedMimeTypes是一个mime类型字符串数组.
ArrayList<String> allowedMimeTypes = new ArrayList<String>();
allowedMimeTypes.add("image/jpeg");
allowedMimeTypes.add("image/png");
Run Code Online (Sandbox Code Playgroud)
我希望它对你有所帮助.
归档时间: |
|
查看次数: |
6466 次 |
最近记录: |