通过阅读Stack和web,我发现,出于安全原因,您不能预先填充此选项。然而,我有一些页面表单,用户需要填写。通过将其他变量保留为会话变量,我可以让页面记住它们以前的条目,并在该页被调用回、文本框、按钮等时重新显示它们。我还没有想出如何对文件名输入表单组件进行同样的处理。如果有解决办法,有什么想法吗?
发布于 2012-10-16 03:40:34
如果已经上传了图像,则需要在逻辑服务器端显示上传图像的拇指,并提供上传新图像的选项,此时您将显示一个空文件输入。就像..。
if(sessioncontains("uploaded")) {
out << "<img src=\"" + (sessionget("uploaded")->thumb) + "\"/>";
out << "<label>Upload a new image</label>";
} else {
out << "<label>Upload an image</label>";
}
out << "<input type=\"file\"/>";
为了在字段提交之前保存字段的值,编辑,只需将它们放在幕后的服务器上即可。How can I upload files asynchronously?。或者您可以将它们序列化为window.localStorage
作为数据URL (注意存储限制)。
Javascript..。
function retrieveFiles() {
var files = [];
var json = window.localStorage.getItem("files");
if(json.length) {
try {
files = JSON.parse(json);
} catch(ex) {
console.err("There was an error", files, window.localStorage);
}
}
return files;
}
function storeFiles(files) {
window.localStorage.setItem("files", JSON.stringify(files));
}
$(function() {
var arr = retrieveFiles();
$("#file").on("change", function() {
var files = $(this).prop("files");
var reader = new FileReader();
reader.onload = function(e) {
arr.push(e.target.result);
storeFiles(arr);
}
for(var i = 0; i < files.length; ++i) {
reader.readAsDataURL(files[i]);
}
});
$("form").on("submit", function() {
// Post files array arr by AJAX
});
});
HTML。
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" id="file" multiple/>
<button type="submit">Submit</button>
</form>
https://stackoverflow.com/questions/12913830
复制相似问题