2012-11-13 78 views
0

我使用uploadify與express.js上傳視頻到節點服務器,它工作正常,但在我生成視頻縮略圖後,我需要返回縮略圖路徑,這裏是我做的uploadify無法獲得服務器響應數據

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?

以及它看起來像它不是一個對象,而是一個字符串,怪異

回答

0

您的服務器代碼響應需要添加頁眉{內容類型:「應用/ JSON」},否則默認是儘可能解釋文本。或者你可以做JSON.parse(數據)在前端將文本轉換爲json對象。

+0

但是express doc說當給出一個數組或對象時,Express將用JSON表示做出響應: – paynestrike

+0

只是檢查響應頭。 btw什麼瀏覽器,瀏覽器版本,快遞版本。 – wayne

相關問題