当用户单击“打开”时上传文件输入表单

Posted

技术标签:

【中文标题】当用户单击“打开”时上传文件输入表单【英文标题】:Have a file input form upload when a user clicks "open" 【发布时间】:2013-11-10 14:45:30 【问题描述】:

我想知道这个流程是否可行:

    单击“上传”按钮。它的风格与通常的风格截然不同。它不显示“未选择文件”文本。

    通常的文件浏览器会弹出。用户选择要上传的文件。他们点击文件浏览器中的“打开”按钮。

    点击“打开”后,文件浏览器将关闭(正常),文件立即开始上传(与正常需要提交不同)。

    我检测到文件何时完成上传,并定向到另一个页面。

这是我将如何尝试实现它:

    输入按钮上的自定义 CSS - 这似乎并不难。 无需更改 检测输入值何时更改。一旦我检测到它发生了变化,就触发提交。 ????如何检测文件何时完成上传?

【问题讨论】:

使用常规表单提交执行第 3 和第 4 项。操作页面应该进行重定向。 【参考方案1】:

如果您使用表单提交,则文件会在(可能是 POST)请求完成时完成上传。

要在输入值更改时触发提交,请在 javascript 中使用form.submit()

$('#file_input').change(function() 
    $(this).closest('form').submit();
);

您的服务器应将重定向作为响应发回(例如状态码 301、302、303 等)。

【讨论】:

【参考方案2】:

取决于您如何考虑实施它。但这是我在其中一个项目中所做的。

步骤 1 使用 Ajax 上传文件:

upload file using jquery ajax How to upload a file using jQuery.ajax and FormData Google

第 2 步上传完成后,我的服务器端脚本返回 JSON - 取决于您使用的服务器端语言。

第 3 步我解析该 json 以查看上传是否成功,然后采取必要的步骤

【讨论】:

以上是关于当用户单击“打开”时上传文件输入表单的主要内容,如果未能解决你的问题,请参考以下文章

如何删除特定用户上传的文件

是否可以制作一个按钮作为文件上传按钮?

用户填写表单时上传文件

仅当单击提交按钮时,如何让 Dropzone.js 上传文件?

当我打开上传的文件表单进行编辑时,文件名无法显示

从不同文件夹上传 HTML 多个文件