1
我使用Heroku和S3插件 - 「Bucketeer」。Heroku/Bucketeer(S3)上傳限制
我有這個工作,我可以上傳圖像沒有問題。關鍵是我不在乎上傳圖片。我的應用程序處理上傳MP3(沒有什麼險惡 - 它是一個本地樂隊的網絡應用程序)。
我無法上傳MP3。它不會出錯或什麼,只是文件不會在S3中出現 - 而圖像上傳方式完全一樣。
編輯添加 - 這不是一個文件類型的問題,因爲我通過上傳一個非常小的MP3文件進行測試,這很好。下面
代碼:
<form class="form" action="../model/process-track-upload.php" method="post" enctype="multipart/form-data">
<div class="row">
<div class="col-xs-12 col-sm-4">
<div class="dashboard-widget">
<h3>Add a song to your collection</h3>
<input class="input" type="text" name="trackname" placeholder="Track Name" required/>
<input class="input-margin" name="userfile" type="file">
<input type="hidden" name="userID" value="<?php echo $userID ?>" />
<button class="btn btn-large btn-block " type="submit" name="btn-upload">upload</button>
</div>
</div>
</form>
和後端代碼:
require('../vendor/autoload.php');
$s3 = Aws\S3\S3Client::factory();
$bucket = getenv('S3_BUCKET')?: die('No "S3_BUCKET" config var in found in env!');
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['userfile']) && $_FILES['userfile']['error'] == UPLOAD_ERR_OK && is_uploaded_file($_FILES['userfile']['tmp_name'])) {
try {
$upload = $s3->upload($bucket, $_FILES['userfile']['name'], fopen($_FILES['userfile']['tmp_name'], 'rb'), 'public-read');
?>
<p>Upload <a href="<?=htmlspecialchars($upload->get('ObjectURL'))?>">successful</a> :)</p>
<?php } catch(Exception $e) { ?>
<p>Upload error :(</p>
<?php } }