地球上最伟大的头脑,请告诉我如何设置文件输入方法的值。
故事是为了将照片上传到测试站点,我有:
<input type="file" accept="image/*" id="uploadImg" name="tmp" value="Фотографії" multiple />
在以下方案中 生成照片预览(为用户) :
<ul id="list">
<li>
<img src="images/photos/fari-ford-mustang.jpg" data-rank="1" />
</li>
<li>
<img src="images/photos/fari-ford-mustang2.jpg" data-rank="2" />
</li>
</ul>
并输入(用于发送到服务器)到这个:
<input type="file" name="photos" data-rank="1" />
<input type="file" name="photos" data-rank="2" />
用英语讲。stackoverflow 版本有一个“相同”的问题来描述它是如何工作的。
在研究了 MSDN 上的文章后,我无法以任何方式解决此任务。
有没有人在更改 input.files 的值方面有类似的经验?!
实际上我创作的整个代码:
function ShowFile(e) {
var files = e.target.files;
for (var i = 0, f; f = files[i]; i++) {
if (!f.type.match('image.*')) continue;
var fr = new FileReader();
fr.onload = (function(theFile) {
return function(e) {
$('#list').append('<li><img src="' +e.target.result+ '" /></li>').css('background-image', 'none');
$('#photoInputs').append('<input type="file" name="photos" />');
$('#photoInputs input[name="photos"]').last().files = theFile; // underfined
};
})(f);
fr.readAsDataURL(f)
}
}
目前,我已经改变了选择文件并将文件上传到站点的方法。
以前,可以选择多个文件(属性相乘),但是,由于将来如何拆分它们的不确定性,我对其进行了重新设计,以将一个文件加载到已经静态的输入中。你可以在同一个测试版本
上看到工作的结果。 但是这个问题仍然有效,因为“一次一个”而不是“一次”选择文件,一个人想要添加 20 个广告的可能性并不是最乐观的事情。
代码如下所示: