2013-04-17 45 views
2

我正在使用jquery file upload脚本,并且已成功将主映像上传到Amazon S3。我现在正在尝试将多个图片大小替换为上传到S3中的子文件夹或对象。如何用Amazon S3取代PHP imagecopyresampled?

里面的UploadHandler.php的create_scaled_image函数文件我该如何更换 imagecopyresampled与S3呼叫打电话?这甚至有可能吗?

这里是做什么的图像大小调整和写入该文件指出:

$success = $src_img && @imagecopyresampled(
     $new_img, 
     $src_img, 
     $dst_x, 
     $dst_y, 
     0, 
     0, 
     $new_width, 
     $new_height, 
     $img_width, 
     $img_height 
    ) && $write_image($new_img, $new_file_path, $image_quality); 
    // Free up memory (imagedestroy does not delete files): 
    @imagedestroy($src_img); 
    @imagedestroy($new_img); 

我可以以某种方式调整图像大小在内存中,然后将文件保存到我的S3对象?

$bucket = "pics.mysite.com"; 

$file = ?? 
$uploaded_file = ?? 
$response = $s3->create_object($bucket, $file, array('fileUpload' => $uploaded_file, 'acl' => AmazonS3::ACL_PUBLIC)); 
if ($response->isOK()) { 
    //success 
} 
+0

您好保罗,我也jqueryfileupload和我的工作将图片路径中的插件与AWS整合时会出现问题。uploadHandler.php有一个'options'数组,用于保存'upload_dir'和'upload_url'。我有一个问题发布[这里](http://stackoverflow.com/questions/17490045/integrating-jqueryupload-plugin-with-aws-php-sdk-to-upload-images-to-s3) – KillABug

+0

如果你可以分享您为实现调整大小功能所做的类修改,这对我们来说是一个很大的帮助。我对[发布]中提供的相同的问题存在疑问(http://stackoverflow.com/questions/17544628/image-upload-performance-问题与amazon-s3-and-jqueryfileupload-plugin) – KillABug

回答

2

您可以捕获的imagejpeg()输出和相关的保存功能时产生的图像文件内容的内存中表示。我不知道这是否S3库允许你上传一个字符串,而不是只在一个文件指向它,但它会去是这样的:

... image operations 
ob_start(); 
imagejpeg($img); // out $img gd handle as a .jpg file 
$jpg = ob_get_clean(); 

$s3->upload(.... 'filedata' => $jpg); 
       ^^^^^^^^^^---whatever it'be in the S3 lib to send from a string 
+0

Hello @Marc B如果你可以帮我修改你为实现调整大小功能所做的修改,那对我们来说是一个很大的帮助。相同发布[这里](http://stackoverflow.com/questions/17544628/image-upl+oad-performance-issue-with-amazon-s3-and-jqueryfileupload-plugin) – KillABug