php - 如何在php中逐字节上传文件

标签 php javascript upload

我有一个表单输入 type="file"元素,它接受一个文件。当我上传它并将其传递到服务器端 php 脚本时。

如何逐字节写入 $_FILES["file"]["tmp_name"] 中存储的临时文件? 下面的代码不起作用。好像是写在请求的最后。例如,如果连接在中间丢失,我想查看 40% 是否已完成,以便我可以恢复它。

有什么指点吗?

$target_path = "uploads/";
$target_path = $target_path . basename($name);
if (isset($_FILES['file']['tmp_name']) && is_uploaded_file($_FILES['file']['tmp_name'])) {
        // Open temp file
        $out = fopen($target_path, "wb");
        if ($out) {
            // Read binary input stream and append it to temp file
            $in = fopen($_FILES['file']['tmp_name'], "rb");

            if ($in) {
                while ($buff = fread($in, 4096))
                    fwrite($out, $buff);

            } 

            fclose($in);
            fclose($out);

        }
} 

最佳答案

直到上传完成(或失败)后,PHP 才会将控制权移交给文件上传目标脚本。您无需执行任何操作即可“接受”该文件 - PHP 和 Apache 会负责将其写入 $_FILES 数组的 ['tmp_name'] 参数中指定的文件名。

如果您尝试恢复失败的上传,则需要更复杂的脚本。

关于php - 如何在php中逐字节上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7840503/

相关文章:

php - 如何使用 ffmpeg 转换高质量的 .wmv 文件

php - 为什么 php 不能正确检测 pdf mime 类型 (wkhtmltopdf)?

JavaScript:函数内的执行顺序

file - 如何使用 Google Apps 脚本和 Discord Webhook 将图像上传到 Discord?

node.js - 使用Mongoose查询数据时如何显示Multer上传的图片

php - phpmailer 的问题

javascript - 数据表服务器端处理速度非常慢

javascript - HTML 表单输入依赖于之前使用 javascript 和 php 的表单输入,无法正常工作

javascript - JQuery - offset()/position() 的回调

google-app-engine - 平台中立的 JSP Zip 文件上传 (Google App Engine/Tomcat)