【问题标题】:HTML Allow Same File Name UploadHTML 允许上传相同的文件名
【发布时间】:2015-09-11 21:18:47
【问题描述】:

我有一个简单的 HTML 文件上传输入:

<input name="ImageFile" id="imageInput" type="file" accept=".jpg, .jpeg" />

我想允许连续上传相同的文件名。例如,

首先我上传了一张图片,然后我看到它显示出来并确定这不是我喜欢它的方式,所以我在 photoshop(或其他照片编辑器)中打开它并进行了一些更改。现在我想重新上传它。

使用当前的输入字段,我无法做到这一点。我必须:

a.) 更改名称

或

b.) 有办法在重新上传之前清除输入字段

我想要发生的是让上传字段清除现有文件,从而允许上传相同的文件而不会发生冲突。或者,如果 HTML 具有允许再次上传相同文件的属性(并具有在 photoshop 中所做的更新更改)。

出于多种原因,我不希望我的用户通过按 x 按钮手动清除输入。

注意:我无法在弹出选择框时清除文件输入,因为如果他们按下取消它仍然会删除图像。我知道我可以通过在删除之前保存图像来避免这种情况,但这似乎是一个非常丑陋的黑客攻击。

有人可以帮我解决这个问题吗?是否有简单的破解/解决方法,或者这不可能?

【问题讨论】:

  • 你用什么从后端检索文件; move_uploaded_file() ?如果是这样,您需要在再次添加之前取消链接()文件名。
  • 我想我只是说最近在 PHP 中遇到的麻烦
  • 我用的是复制功能。

标签: javascript jquery html file-upload


【解决方案1】:

上次我使用文件上传字段时,我可以按 F5,在浏览器提示时重新提交表单,它会上传应用了更改的文件。

所以听起来您所做的不仅仅是“简单”的文件上传。如果您正在监听onchange,请考虑在上传成功后调用.reset() 将其清除。

【讨论】:

  • 这对我或其他理解这一点的人来说是一个不错的选择。但对于我的用户,我不能假设他们知道这一点。
  • 另外,上传后我无法清除它,因为我在 PHP 中使用它来获取位置。
【解决方案2】:

这看起来图像只是缓存在您的浏览器中。查看这篇文章以防止缓存Here

来自上面的链接:

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

【讨论】:

    猜你喜欢
    • 2017-01-28
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2013-01-29
    相关资源
    最近更新 更多