我在用PHP編寫的應用程序中有一個圖像上傳系統。文件瀏覽器打開,用戶選擇一個圖像,我上傳到我的服務器,我裁剪,我調整大小,我應用了一個水印。底線是圖像在我的服務器。在某個時候,用戶點擊一個按鈕,然後將這些文件移到我的S3存儲桶中。當然,我需要一個進度條,因爲客戶需要一個進度條。AWS S3 PHP進度條(服務器到雲)
現在上傳的文件是很容易的:
$result = $this->awsS3Client->putObject(array(
'Bucket' => 'bad-dum-tss-bucket',
'Key' => $destinationFilePath,
'SourceFile' => $sourceFilePath,
'ContentType' => $mimeType,
'ACL' => 'public-read',
));
我甚至可以去多部分
$uploader = UploadBuilder::newInstance()
->setClient($this->awsS3Client)
->setSource($sourceFilePath)
->setBucket('bad-dum-tss-bucket')
->setKey($destinationFilePath)
->build();
try {
$uploader->upload();
} catch (MultipartUploadException $e) {
$uploader->abort();
}
沒有問題,直到我意識到我的客戶需要一個該死的進度條。現在我已經搜索了很多,我所看到的都是指向上傳者的鏈接,例如http://fineuploader.com/,假設上傳將直接從瀏覽器(即不是從我的服務器)發生。所以PHP的進度條-S3,任何人?
PhP(服務器端)進度條編號。然而......你試過這個嗎? http://www.w3bees.com/2013/12/multiple-file-upload-with-progress-bar.html它需要php和Javascript。否則,你根本無法完成進度條=) – 2014-11-21 09:29:32
是的,當然,必須要有javascript才能顯示進度條,我忽略了這一點。 ajaxForm.uploadProgress的問題在於它不會檢測到S3上傳的進度。這是我最初的,但因爲文件已經在服務器中,進度條立即在100%,然後加載幾秒鐘,而實際的S3上傳正在進行,這顯然不是我想要的。 – turntwo 2014-11-21 09:33:35