我需要在将图像上传到亚马逊s3之前获取图像的直方图。直方图工作正常上传工作正常但我无法在上传前处理图像文件。
我不想将图像保存到本地硬盘并处理它并删除本地文件上传到s3。
你知道除此之外的任何解决方案吗?我的直方图制作工具正在使用本地文件。
感谢
答案 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。 祝你好运:)