【发布时间】:2016-05-06 20:18:30
【问题描述】:
我知道这听起来很奇怪。我的服务器上有一个 php 文件,负责处理上传。我桌面上的一个 java 程序将文件发送到这个 php 文件。我想随时取消文件上传到服务器的过程。所以我想创建一种流或类似的东西来停止正在进行的上传过程。
我尝试使用 PID 来停止 php 文件的运行。但是在客户端完成上传之前,一个 php 文件并没有开始运行。
我想在上传开始前运行“savePid()”函数。所以我可以随时获取 PID 并停止运行文件。
<?php
include('func.php');
savePid(); //run this before upload started
$in = stream_get_contents(fopen("php://input", "rb"));
$out = fopen('pipeupload.txt', 'w');
while ( ! feof($in) ) {
fwrite($out, fread($in, 8192));
}
?>
我知道这行不通。我只是在寻找一种解决方案来停止正在进行的上传过程。
【问题讨论】:
-
我认为你不能停止从 PHP 上传。据我所知,PHP 会在上传完成后获取文件。真正的接收过程由您的网络服务器完成。
-
@bansi 我可以在服务器端选择另一个解决方案。我只需要停止上传过程。
-
如果在java程序中取消java程序的上传,PHP只会收到部分上传。检查该错误并让脚本终止。
-
@CharlotteDunois 我知道我必须停止服务器上的进程。
-
杀死一个网络服务器进程不是一个好主意,因为它可能导致比它解决的问题更多的问题。此外,这甚至可能不会停止上传本身。在客户端停止上传。