上传前获取post参数

发布于 2024-09-06 16:00:36 字数 245 浏览 0 评论 0原文

当我使用 Commons FileUpload 时,方法 parseRequest(request) 上传文件并读取其他 post 参数。所以我只有上传文件后才能获取参数值。 问题是我在上传文件之前需要这些参数值(参数之一是 upload_path)。

有没有办法首先从多部分内容中获取帖子参数,然后开始上传到正确的文件夹?

(request.getParameter(name) 将为多部分内容返回 null)。

提前致谢!

When I use Commons FileUpload the method parseRequest(request) uploads files and also reads additional post parameters. So I can get parameter values only after uploading the files.
The problem is that I need those parameter values before uploading the files (one of the parameters is upload_path).

Is there any way to get post parameters first from multipart content and then start uploading to the correct folder?

(request.getParameter(name) will return null for multipart content).

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

看海 2024-09-13 16:00:36

这对我有用,在第一遍中我检查所有参数,然后我下载非表单字段。

ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iter = upload.getItemIterator( request );

while ( iter.hasNext() ) {
    FileItemStream item = iter.next();
    String name = item.getFieldName();
    InputStream stream = item.openStream();

    if ( item.isFormField() ) {
        byte[] buffer = new byte[ 128 ];
        int len = stream.read( buffer );
        String value = new String( buffer, 0,len );
        if ( name.equals( "name" ) ) {
            filename  = value;
        }
        System.err.println( "Form field " + name + " with value " + value + " detected." );
        stream.close();
    }
}

This works for me, in first pass I check all parameters, after that I take the non form fields for download.

ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iter = upload.getItemIterator( request );

while ( iter.hasNext() ) {
    FileItemStream item = iter.next();
    String name = item.getFieldName();
    InputStream stream = item.openStream();

    if ( item.isFormField() ) {
        byte[] buffer = new byte[ 128 ];
        int len = stream.read( buffer );
        String value = new String( buffer, 0,len );
        if ( name.equals( "name" ) ) {
            filename  = value;
        }
        System.err.println( "Form field " + name + " with value " + value + " detected." );
        stream.close();
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文