【问题标题】:uploadify can not get server response datauploadify 无法获取服务器响应数据
【发布时间】:2012-11-13 01:41:29
【问题描述】:

我使用uploadify和express.js将视频上传到节点服务器,它工作正常,但是在我生成视频缩略图后我需要返回缩略图路径,这就是我所做的

exports.upload = function(req, res,next){
    var tmp_path = req.files.product_video.path;
    var target_path = 'F:/shopping/shop/' +req.body.shop_id+'/'+ req.files.product_video.name;

    fs.rename(tmp_path, target_path, function(err) {
        if (err) {
            console.log(err)
        }
        else{
            fs.unlink(tmp_path, function() {
                if (err){
                    console.log(err)
                }else{
                    exec("C:/ffmpeg/bin/ffmpeg -i shop/"+ req.body.shop_id+ '/' + req.files.product_video.name  + " -ss 00:01:00.00 -r 1 -an -vframes 1 -s 250x150 -f mjpeg shop/"+ req.body.shop_id+ '/'  + req.files.product_video.name  + "_thumbnail.jpg", function(err){
                        // res.send({'thumb' : 'shop/'+ req.body.shop_id+ '/'  + req.files.product_video.name  + "_thumbnail.jpg",});
                        var data = {
                            'thum_src':'shop/'+ req.body.shop_id+ '/'  + req.files.product_video.name  + "_thumbnail.jpg"
                        }
                        res.send(data);
                    });
                }
            });
        }
    });
};

这里是前端代码

function addVideo(){
    $('#input_product_video').uploadify({
        'formData':{'shop_id':$('#shop_id').val()},
        'buttonText'    : 'add video',
        'fileSizeLimit' : '100MB',
        'fileObjName' : 'product_video',
        'uploader'    : '/uploads',
        'swf'         :'/public/javascripts/lib/uploadify/uploadify.swf',
        'onUploadSuccess':function(file,data){
            console.log(data.thum_src);

        }
    });
}

console.log(data.thum_src); // always end of "undefined"

但是

 console.log(data) ; //will output the json data like this
                                         {
                                            'thum_src':'path'
                                          }

没看懂???为什么我不能像 data.thum_src 一样访问 thum_src ???

它看起来不是一个对象而是一个字符串,很奇怪

【问题讨论】:

    标签: node.js upload express uploadify


    【解决方案1】:

    您在服务器代码中的响应需要添加标头 {Content-Type:'application/json'} 否则默认解释为文本。或者你可以在前端执行 JSON.parse(data) 将文本转换为 json 对象。

    【讨论】:

    • 但是 express 文档说当给定一个数组或对象时 Express 会用 JSON 表示响应:
    • 只检查响应头。顺便说一句,什么浏览器,浏览器版本,快速版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 2017-06-25
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 2020-11-04
    相关资源
    最近更新 更多