我正在尝试制作一个控件,您可以在其中选择要在表单中提交的文件并将文件放入其中以执行相同的操作。我有这样的东西,如果它是图像,它还会显示文件的预览:
<div class="preview-image-container">
<input type="file" name="File" id="File" accept="image/*"
class="image-url form-control" style="display:none;" />
<div class="preview-image-dummy"></div><img class="preview-image-url" />
<div class="preview-image-instruction">
<div class="preview-image-btn-browse btn btn-primary">Select file</div>
<p>or drop it here.</p>
</div>
</div>
用户将文件放入preview-image-container
. 该文件不是用 AJAX 提交的,用户需要提交包含更多数据的表单。
出于安全原因,我们不允许使用 JavaScript 更改输入文件的值。但是,我知道默认输入文件支持 droppable 并且有很多网站让我们通过将文件放入表单中来选择文件,所以我猜有一种方法可以做到这一点。
正如您从 MCVE 中看到的那样,我只对使用jQuery 或纯 JavaScript而不使用其他库感兴趣。
虽然可以使用dropzone.js,但它不符合我的要求,并且需要相当长的时间来自定义其外观。此外,dropzone.js具有某些在我的 ASP.NET 应用程序中无法满足的配置要求。
有一个类似的问题,但没有正确的答案:
How to set file object into input file in the form in HTML?
也不像拖放图片输入文件和上传前预览,因为我已经实现了拖放和预览动作。我的问题特定于将文件放入父容器时输入空文件的问题。