PHP进程文件在上传到amazon s3之前

时间:2013-09-12 04:52:09

标签: php file-upload process amazon-s3 amazon

我需要在将图像上传到亚马逊s3之前获取图像的直方图。直方图工作正常上传工作正常但我无法在上传前处理图像文件。

我不想将图像保存到本地硬盘并处理它并删除本地文件上传到s3。

你知道除此之外的任何解决方案吗?我的直方图制作工具正在使用本地文件。

感谢

2 个答案:

答案 0 :(得分:0)

将文件上传到PHP时,它将始终在PHP脚本开始执行之前保存到磁盘(请参阅php.ini中的upload_tmp_dir)。内存上传的最接近的事情是使用ramdisk进行临时上传位置。

不是通过PHP上传文件,而是upload it directly to S3 from the client's browser,但我真的没有看到这对你有什么好处,因为你需要在某些时候将它下载到你的服务器来进行直方图处理。

答案 1 :(得分:0)

1.您可以使用PUT方法发送文件对象或类似内容。而服务器端则需要处理“php:/ input”来读写文件。示例代码:

<?php 
 $handle= fopen("php://input", "r");
 $fileToWrite = fopen('test.txt','w');
  while ($data = fread($handle, 1024))
        fwrite($fileToWrite ,$data);
 fclose($handle);
 fclose($fileToWrite);
?>

此代码与apache-windows完美配合(我认为与linux相同),但不适用于其他web-sever,因为服务器总是在发送到PHP后端之前缓冲客户端请求(我已经测试过了)使用nginx,lighttpd)以获得更好的性能


2,使用websocket和FileReader!

我认为这是一个不错的选择,有了websocket,问题就解决了。但是如果你想开发一个PHP-websocket-server,那就有新的问题了。你应该使用node.js作为websocket。 祝你好运:)