PHP进程文件,然后将其上载到AmazonS3

PHP进程文件,然后将其上载到AmazonS3,php,file-upload,process,amazon-s3,amazon,Php,File Upload,Process,Amazon S3,Amazon,在上传到AmazonS3之前,我需要得到图像的直方图。直方图工作良好上传工作良好,但我不能在上传前处理图像文件 我不想将图像保存到本地硬盘,并对其进行处理,然后删除上载到s3的本地文件 你知道除此之外还有什么解决办法吗?我的直方图生成器功能正在处理本地文件 谢谢将文件上载到PHP时,它将始终在PHP脚本开始执行之前保存到磁盘(请参阅中的upload\u tmp\u dir)。最接近内存上传的方法是在临时上传位置使用ramdisk 你可以不通过PHP上传文件,但我不知道这对你有什么好处,因为你需要

在上传到AmazonS3之前,我需要得到图像的直方图。直方图工作良好上传工作良好,但我不能在上传前处理图像文件

我不想将图像保存到本地硬盘,并对其进行处理,然后删除上载到s3的本地文件

你知道除此之外还有什么解决办法吗?我的直方图生成器功能正在处理本地文件


谢谢

将文件上载到PHP时,它将始终在PHP脚本开始执行之前保存到磁盘(请参阅中的
upload\u tmp\u dir
)。最接近内存上传的方法是在临时上传位置使用ramdisk


你可以不通过PHP上传文件,但我不知道这对你有什么好处,因为你需要在某个时候将其下载到服务器上进行直方图处理。

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);
?>


这段代码在ApacheWindows上运行得非常完美(我认为与linux的结果相同),但不适用于其他web服务器,因为服务器总是在发送到PHP后端之前缓冲客户端请求(我已经用nginx、lighttpd进行了测试),以获得更好的性能


2、使用websocket和FileReader

我认为这是一个很好的选择,有了websocket,问题就解决了。但是,如果您想开发一个PHPWebsocket服务器,就有一个新问题。您应该为websocket使用node.js。 祝你好运:)