2

这是我将文件上传到服务器的代码。

$(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>

它工作得很好,上传图片并发送 json 作为响应,我可以在 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',现在我希望将响应文件名写入我的div(#phy_files) ,但它写的是'file.png'

4

2 回答 2

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");
    });
}
于 2013-06-26T13:57:39.923 回答
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");
        });
    }
于 2013-06-26T13:27:03.737 回答