2013-07-08 39 views
4

上傳圖像到S3我正面臨一個問題。我正在使用S3類和jqueryimageuploader插件相同。 我已經設置了基本的應用程序,並且從我的本地機器運行良好。當我將它部署到beanstalk上時,它開始拋出錯誤。我附加了控制檯快照。 我在這裏添加我的代碼以供參考。 enter image description here 這是發射index.html文件 -遇到內部服務器錯誤500,同時上傳圖像到S3

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>jQuery File Upload Example</title> 
</head> 
<body> 
<input id="fileupload" type="file" name="files[]" data-url="http://mydomain.elasticbeanstalk.com/server/php/index.php" multiple> 
<script src="js/jquery.min.js"></script> 
<script src="js/vendor/jquery.ui.widget.js"></script> 
<script src="js/jquery.iframe-transport.js"></script> 
<script src="js/jquery.fileupload.js"></script> 
<script> 
$(function() { 
$('#fileupload').fileupload({ 
    dataType: 'json', 
    done: function (e, data) { 
     $.each(data.result.files, function (index, file) { 
      $('<p/>').text(file.name).appendTo(document.body); 
     }); 
    } 
}); 
$('#fileupload').fileupload({ 
/* ... */ 
progressall: function (e, data) { 
    var progress = parseInt(data.loaded/data.total * 100, 10); 
    $('#progress .bar').css(
     'width', 
     progress + '%' 
    ); 
    } 
}); 
}); 

</script> 
<style> 
.bar { 
    height: 18px; 
    background: green; 
} 

我的index.php - >這就是所謂的文件上傳點擊

<?php 
error_reporting(E_ALL | E_STRICT); 
require('UploadHandler.php'); 
$upload_handler = new UploadHandler(); 

?> 

的uploadHandler.php文件可以找到here
我會a DD由我修改了部分上傳到S3

$bucket = "my bucket nmae"; 
$s3 = new S3(awsAccessKey, awsSecretKey); 
$response = $s3->putObjectFile($file_path,$bucket,$file->name,S3::ACL_PUBLIC_READ); 
$thumbResponse = $s3->putObjectFile('files/thumbnail/'.$file->name,$bucket,'images /'.$file->name,S3::ACL_PUBLIC_READ); 
echo $response; 
echo $thumbResponse; 
if ($response==1) { 
echo 'HERER enter!!'; 
    } else { 
     $file->error = "<strong>Something went wrong while uploading your file... sorry.</strong>"; 
} 

我不是太上傳大文件和它工作得很好我的本地機器上,但未能對beanstalk.Any幫助將是great.Thank你的注意。

+2

而你的錯誤日誌說? –

+0

檢查您的服務器的錯誤日誌。它會有更多關於500的細節(除非你從亞馬遜那裏獲得500)。 –

+0

我通過控制檯配置了日誌,但沒有記錄錯誤。 :( – KillABug

回答

3

一個HTTP 500錯誤意味着你必須在你的應用程序需要修復一些「錯誤」(即:它是相對於用戶的故障類似404的開發者的錯誤)

要找出問題到底是什麼(實際上可能有1000個HTTP 500產生的原因),您需要查看錯誤日誌文件。如果它使用標準的LAMP堆棧,你應該可以在這裏找到這個錯誤日誌:/var/log/apache2/error.log(但可能有很多其他位置)

我的猜測是你有一個文件權限問題。我猜測用戶沒有寫文件夾的權限,因爲你要將文件上傳到這個文件夾,在這種情況下,你需要將該文件夾設置爲可寫(在Linux中只需鍵入:sudo chmod -R a + rwX /使/本/文件夾/事/寫)。但這只是一個猜測,你需要首先仔細檢查你的錯誤日誌文件。

+0

我不確定它的權限問題,因爲我通過本地計算機將文件上傳到同一個文件夾。我去了通過日誌和亞馬遜日誌中沒有東西。我將通過豆莖日誌文件並恢復 – KillABug

+0

這是日誌說':: 1 - - [08/Jul/2013:03:10:01 +0000 ]「OPTIONS * HTTP/1.0」200 - 「 - 」「Apache/2.4.3(亞馬遜)(內部虛擬連接)」 10.164.47.96 - - [08/Jul/2013:03:10:52 +0000]「 - 「408 - 」 - 「」 - 「 ''10.164.47.96 - - [08/Jul/2013:14:27:50 +0000]」GET/HTTP/1.1「403 202」 - 「」Mozilla/5.0 Windows NT 6.1)AppleWebKit/537.36(KHTML,如Gecko)Chrome/27.0.1453.116 Safari/537.36「 10.164.47.96 - - [08/Jul/2013:14:27:50 +0000]」GET /favicon.ico HTTP /1.1「404 209」 - 「」Mozilla/5.0(Wi ndows NT 6.1)AppleWebKit/537.36(KHTML,像Gecko)Chrome/27.0.1453.116 Safari/537.36「' – KillABug

+0

坦白說這是一個開發者的錯! :P我錯誤地配置了路徑,並且沒有在上傳到服務器時進行交叉檢查。感謝您的回覆。 – KillABug

相關問題