以下是我将文件上传到服务器的代码。
$(function () {
$('#phy_fileupload').fileupload({
autoUpload: true,
add: function (e, data) {
$('body').append('<p class="upl">Uploading...</p>')
data.submit();
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#phy_progress .bar').css(
'width',
progress + '%'
);
},
done: function (e, data) {
$.each(data.files, function (index, file) {
$('.upl').remove();
$('<p/>').text(file.name).appendTo("#phy_files");
});
}
});
});
这是HTML
<div id="phy_progress">
<div class="bar" style="width: 0%;"></div>
</div>
<input id="phy_fileupload" type="file" name="files[]" data-url="<?php echo site_url('admin/upload/'); ?>" multiple>
<div class="files" id="phy_files"></div>
效果很好,上传图片并发送响应,我可以在FIREBUG中看到。
以下是一个上传文件的回复。
{"files":[{"name":"2013-06-20_1235UQn5gm5SRUPzbA.png","size":29381,"url":"http:\/\/files\/2013-06-20_1235UQn5gm5SRUPzbA.png","thumbnail_url":"http:\/\/files\/thumbnail\/2013-06-20_1235UQn5gm5SRUPzbA.png","delete_url":"http:\/\/localhost\/mark\/?file=2013-06-20_1235UQn5gm5SRUPzbA.png","delete_type":"DELETE"}]}
现在的问题是它在div中添加了文件名(#phy_files)(即2013-06-20_1235.png),我怎么想添加上传到服务器的新文件名(即)2013-06-20_1235UQn5gm5SRUPzbA.png。现在我花了一整天的时间来尝试访问Json的这个响应,但显然要么我一直在寻找错误的结局,要么我完全迷失了,我到目前为止还不知道如何才能访问这个响应。
真的很感激任何帮助。如果您不理解我在这里写的内容,请告诉我,如果需要,我很乐意再次解释。谢谢。
简而言之:
问题是上传的文件命名为'file.png',在服务器上,其名称更改为'filexyzserdsdf.png',现在我希望将响应文件名写入my div( #phy_files),但它正在写'file.png'而不是
答案 0 :(得分:1)
现在它变得清晰......好吧,你应该这样做:
done: function (e, data) {
var res = jQuery.parseJSON(data.result);
$.each(res.files, function (index, file) {
$('.upl').remove();
$('<p/>').text(file.name).appendTo("#phy_files");
});
}
答案 1 :(得分:0)
所以,如果你是console.log数据,log =?
中的内容done: function (e, data) {
console.log(data);
$.each(data.files, function (index, file) {
$('.upl').remove();
$('<p/>').text(file.name).appendTo("#phy_files");
});
}