当前位置: 首页 > 知识库问答 >
问题:

限制文件类型上载组件

夏侯兴学
2023-03-14

我正在使用vaadin(7.1.9)的upload组件,现在我的问题是我无法限制哪种文件可以与upload组件一起发送到服务器,但我没有找到任何用于此目的的API。唯一的方法是丢弃错误类型的文件后上传。

public OutputStream receiveUpload(String filename, String mimeType) {

    if(!checkIfAValidType(filename)){
        upload.interruptUpload();
    }          

    return out;
}

这是一种正确的方式吗?

共有1个答案

卢志强
2023-03-14

不,这不是正确的方法。事实是,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;

下面是一个代码片段,给你举个例子:

@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();
    }

}

这里,allowedMimeTypes是MIME类型字符串的数组。

ArrayList<String> allowedMimeTypes = new ArrayList<String>();
allowedMimeTypes.add("image/jpeg");
allowedMimeTypes.add("image/png");
 类似资料:
  • 问题内容: 我有以下代码来检查(上传的简历和推荐信是否与所需类型(pdf或doc或docx)匹配)和大小(小于400 kb) 这无法正常工作,甚至连txt文件都没有通过+大小限制,这是怎么回事? 谢谢, 问题答案: 下面仅使用mime类型来验证文件,然后检查两者的大小。有关大多数MIME类型的列表,请参见此处或google。

  • 问题内容: 我想让jQuery将文件上传字段限制为仅jpg / jpeg,png和gif。我已经在进行后端检查了。我已经通过函数运行了提交按钮,因此我真的只需要知道在提交或发出警报之前如何检查文件类型。 问题答案: 您可以获得与任何其他字段相同的文件字段的值。但是,您无法更改它。 因此,要 表面 检查文件的扩展名是否正确,可以执行以下操作:

  • 我在做什么,发生了什么? 我正在尝试上载grails中的文件,并将其删除。完成后,我仍然面临一个问题,即文件大小太大。例外情况如下: 我尝试和结果: 我发现这个问题之前问过,答案是放一些配置变量: 但仍然会出现同样的错误。我还尝试添加一些依赖项,如这里所述。或者关闭IDE并重建。什么都解决不了。 有人面对这个问题并能解决它吗?

  • 本文向大家介绍php限制上传文件类型并保存上传文件的方法,包括了php限制上传文件类型并保存上传文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php限制上传文件类型并保存上传文件的方法。分享给大家供大家参考。具体如下: 下面的代码演示了php中如何获取用户上传的文件,并限制文件类型的一般图片文件,最后保存到服务器 希望本文所述对大家的php程序设计有所帮助。

  • 我尝试将文件上载到azure web app服务中部署的服务器。在本地,它工作得很好,当谈到azure时,它会抛出一些异常。FileSizeLimitExceededException。 此上载服务是在JAVA Spring boot版本1.5.8中开发的 无法分析多部分servlet请求;嵌套异常为java。lang.IllegalStateException:组织。阿帕奇。公猫util。htt

  • 问题内容: 我有一个上传表单,正在检查文件大小和文件类型,以将上传的文件限制为2 MB,以及.pdf,.jpg,.gif或.png文件类型。我的目标是在用户违反这些规则之一的情况下向他们显示警报消息。 有四种方案: 正确的尺寸/正确的类型(工作中) 正确的尺寸/不正确的类型(工作中) 尺寸/类型 不 正确( 不起作用 ) 不正确的大小/ 不正确的 类型( 不起作用 ) 使用我当前的代码,即使文件类