如何使用这个--> http://www.fengcool.com/2009/06/ajax-form-upload-local-image-file-without-refresh/或valums.com/ajax-upload/在现有的文本输入中插入上传文件的文件名?
(我正在使用php)
文本框例如。
<input name="image" type="text" value="file_name" />
发布于 2011-01-07 23:40:14
您必须让实际的上传处理PHP页面使用上传文件的文件名进行响应。
在fengcool的ajax中,它在startUpload()函数中提供:
var response = $(myFrame.contentWindow.document.body).text();您可以在需要放置文件名的任何位置使用"response“变量。
它实际上被作为变量"image“传递给addUpload()函数,您可以修改该函数以填充文本框,大致如下:
document.getElementById("image").value=image
但是,您可能应该以一种不那么通用的方式来命名<input>,以避免混淆。
更新,要做什么:
1)以更独特的方式命名您的文本框,例如:
<input id="uploaded_image_name" type="text" value="" />//还要注意,为了能够使用Javascript函数getElementById(),我使用了"id“而不是"name”。
2)使用fengcool的ajax,修改addUpload()函数如下:
function addUpload(id,img){
var div = $(document.createElement('div')).attr('id',id);
//add uploaded image
div.html("<img src='"+img+"'><br />");
document.getElementById("uploaded_image_name").value=img
//add text box
var fileName = img.substring(img.lastIndexOf("/")+1);
var txtbx = $(document.createElement('input')).attr('name','img[]').attr('type','text').val(fileName);
/* you may want to change textbox to a hidden field in production */
//var txtbx = $(document.createElement('input')).attr('name','img[]').attr('type','hidden').val(fileName);
txtbx.appendTo(div);
//add remove thumbnail link
var rem = $(document.createElement('a'))
.attr('alt',id)
.attr('href','javascript:;')
.text("Remove").click(removeUpload);
rem.appendTo(div);
//add to the page
div.appendTo("#uploaded_thumb");
}请注意,唯一的变化是在函数中添加了第四个命令。
https://stackoverflow.com/questions/4627029
复制相似问题