2015-06-10 43 views
0

不知道是否有人可以建議 - 我正在使用Plupload並需要重定向到不同的頁面以將信息添加到數據庫中。重定向在Plupload

我可以完美地上傳文件,但我似乎無法讓它重定向。

伊夫試圖把代碼變成「UploadComplete」,並在不同的測試分爲「FileUploaded」

用Firebug我把斷裂成劇本,兩部分都在停在一開始,但是當文件完成它不碰任何一個。

因此,我認爲Id把它放到了Chunks部分的upload.php文件中(按照google的結果建議)。

// Check if file has been uploaded 
if (!$chunks || $chunk == $chunks - 1) { 
// Strip the temp .part suffix off 
rename("{$filePath}.part", $filePath); 
$mypi = $projid; 
header("Location: addimg.php?file=" . $fileName . "&blid=" . $mypi); 
die(); 
} 

在調試它經歷和命中重定向和模具以下,那麼則又回到的開始,「如果(!塊等)」,並通過它再次運行,但從來沒有重定向。

請問我錯過了什麼!我拔出頭髮來完成這項工作。

在此先感謝

的Javascript:

var uploader = new plupload.Uploader({ 
browse_button: 'browse', // this can be an id of a DOM element or the DOM element itself 
container: document.getElementById('upcontainer'), // ... or DOM Element itself 

//url: 'upload.php', 
url: 'uploader_plup/upload.php?wts=<?php echo $projid;?>', 

chunk_size: '2mb', 

max_retries: '5',  

// Sort files 
sortable: true, 

// Specify what files to browse for 
    filters : { 
     mime_types:[ 
     {title : "Image files", extensions : "jpg,gif,png"}, 
     {title : "Zip files", extensions : "zip"}, 
     {title : "Video files", extensions : "mov,mp4,mpeg,avi,mpg,wmv,w4v,flv,ogv,divx,asf,asx,ram,m2v"},              
     {title : "PDF files", extensions : "pdf"},         
     {title : "Text files", extensions : "htm,html,doc,txt,rtf,ppt"} 
    ],}, 
} 
); 

uploader.init(); 



uploader.bind('FilesAdded', function(up, files) { 
var html = ''; 
plupload.each(files, function(file) { 
    html += '<li id="' + file.id + '">' + file.name + '  ('+plupload.formatSize(file.size) + ') <b></b></li>'; 
}); 
document.getElementById('filelist').innerHTML += html; 
}); 

uploader.bind('FileUploaded', function(up, file, info) { 
      // Called when file has finished uploading 
      log('[FileUploaded] File:', file, "Info:", info); 
     }); 

uploader.bind('ChunkUploaded', function(up, file, info) { 
    // Called when file chunk has finished uploading 
    log('[ChunkUploaded] File:', file, "Info:", info); 
}); 

uploader.bind('UploadProgress', function(up, file) { 
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>"; 
log('[UploadProgress] File:', file, "Info:", info); 
}); 

uploader.bind('UploadComplete', function(up, files) { 
      // Called when file has finished uploading 
      // console.log("[UploadComplete]"); 
      // backButtonState = true; 
      var totup = uploader.total.uploaded + 1; 
      var fillen = uploader.files.length; 
      if(totup == fillen) 
      { 
       var mypi = "<?php echo $projid; ?>"; 
       window.location = "addimg.php?file="+files+"&blid="+mypi; 
      } 
      log('[UploadComplete]'); 

     }); 

uploader.bind('Error', function(up, err) { 
document.getElementById('console').innerHTML += "\nError #" + err.code + ": " + err.message; 
log('[Error] File:', file, "Info:", err.message); 
}); 

document.getElementById('start-upload').onclick = function() { 
uploader.start();  
}; 

function log() { 
    var str = ""; 

    plupload.each(arguments, function(arg) { 
     var row = ""; 

     if (typeof(arg) != "string") { 
      plupload.each(arg, function(value, key) { 
       // Convert items in File objects to human readable form 
       if (arg instanceof plupload.File) { 
        // Convert status to human readable 
        switch (value) { 
         case plupload.QUEUED: 
          value = 'QUEUED'; 
          break; 

         case plupload.UPLOADING: 
          value = 'UPLOADING'; 
          break; 

         case plupload.FAILED: 
          value = 'FAILED'; 
          break; 

         case plupload.DONE: 
          value = 'DONE'; 
          break; 
        } 
       } 

       if (typeof(value) != "function") { 
        row += (row ? ', ' : '') + key + '=' + value; 
       } 
      }); 

      str += row + " "; 
     } else { 
      str += arg + " "; 
     } 
    }); 

    var log = document.getElementById('console'); 
    log.innerHTML += str + "\n"; 
} 


</script> 
+0

發表您的JavaScript代碼! –

+0

已經編輯添加JavaScript代碼,如你所建議@Jonatas - 希望你能幫忙謝謝 – Media219

+0

對不起,但它不夠代碼。無法理解發生了什麼。 –

回答

0

試試這個方法:

uploader.bind('UploadComplete', function(up, files) { 
    // Called when all files are either uploaded or failed 

    var mypi = "<?php echo $projid; ?>"; 
    window.location = "addimg.php?file="+files+"&blid="+mypi; 

    /* This is not necessary since UploadComplete means all is done! 
    var totup = uploader.total.uploaded + 1; 
    var fillen = uploader.files.length; 
    if(totup == fillen) {} 
    log('[UploadComplete]');*/ 

}); 

,並刪除這個PHP行:

header("Location: addimg.php?file=" . $fileName . "&blid=" . $mypi); 
+0

嗨喬納塔斯 - 謝謝你 - 遺憾的是仍然沒有工作:(當它upload.php,它不會回到其他頁面上的JavaScript,所以這意味着它緩存行動一旦完成了PHP頁面,就要完成的JavaScript頁面? – Media219

+0

我通過添加警報而不是重定向來測試 - 在Firebug中,我怎麼看到Javascript中最後一件事情,因爲我不認爲它達到UploadComplete。 – Media219

+0

但你說你的上傳工作正常。 –