如何使用通过 POST 请求提交的 PHP 接收图像(文件)

spa*_*cle 6 php post file-upload

我有一个文件:success.jpg

我想通过 HTTP POST 请求发送这个文件,并将它放在我服务器上的公共目录中。

如果我从浏览器上传,我有一个简单的 HTML 表单和 PHP 处理器:php.net/manual/en/features.file-upload.post-method.php

我试图完全放弃使用表单,而只是通过 POST 将数据传递到 URL(例如 myimageserver.com/public/upload.php)。

似乎我可以使用 PHP 函数 move_uploaded_file,它甚至在这里谈到使用 POST:http : //php.net/manual/en/function.move-uploaded-file.php但它没有提供可以接收并存储已通过 POST 上传的文件。

有没有人做过类似的事情?

Ger*_*az0 2

您可以阅读此示例http://www.w3schools.com/php/php_file_upload.asp

它基本上做了这样的事情:

<?php
$target_dir = "uploads/";
$target_dir = $target_dir . basename( $_FILES["uploadFile"]["name"]);
$uploadOk=1;

if (move_uploaded_file($_FILES["uploadFile"]["tmp_name"], $target_dir)) {
    echo "The file ". basename( $_FILES["uploadFile"]["name"]). " has been uploaded.";
} else {
    echo "Sorry, there was an error uploading your file.";
}
Run Code Online (Sandbox Code Playgroud)

关键在于 $_FILES 全局数组。

要在应用该示例之前检查是否存在错误,您可以使用以下示例:

if ($_FILES['file']['uploadFile'] === UPLOAD_ERR_OK) { 
/**
* Do the upload process mentioned above
**/
} else { 
/**
* There were an error
**/ 
} 
Run Code Online (Sandbox Code Playgroud)