我使用client(C#)
或webclient
从HttpWebRequest
发送文件。我想知道如何在PHP(Server)
中接收客户端发送的文件。
我检查了$_POST
,它是空的。
客户端代码(c#):
using (WebClient client = new WebClient())
{
client.UploadFile("http://path/file.php","POST",@"Data.txt");
}
答案 0 :(得分:6)
是的,$_POST
为空,您应该检查上传文件的$_FILES
变量:
这是快速片段:
<?php
$uploaddir = "uploads/";
$uploadfile = $uploaddir . basename( $_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
{
echo "The file has been uploaded successfully";
}
else
{
echo "There was an error uploading the file";
}
?>
以上脚本中$ _FILES的内容如下。
$ _ FILES ['file'] ['name'] 客户端计算机上文件的原始名称。
$ _ FILES ['file'] ['type'] 如果浏览器提供此信息,则为文件的mime类型。一个例子是“image / gif”。
$ _ FILES ['file'] ['size'] 上传文件的大小(以字节为单位)。
$ _ FILES ['file'] ['tmp_name'] 上传文件存储在服务器上的文件的临时文件名。
$ _ FILES ['file'] ['error'] 自PHP 4.2.0起,PHP会返回适当的跟随错误代码以及文件数组
默认情况下,上传的文件将存储在服务器的默认临时目录中。变量 $ _ FILES ['file'] ['tmp_name'] 将保存有关存储位置的信息。需要使用move_uploaded_file函数将上传的文件存储到正确的位置
答案 1 :(得分:2)
您应该使用以下代码作为参考:
if(isset($_FILES['file']['name']) && !empty($_FILES['file']['name']))
{
$name=$_FILES['file']['name'];
$size=$_FILES['file']['size'];
$type=$_FILES['file']['type'];
$tmp_name=$_FILES['file']['tmp_name'];
$error=$_FILES['file']['error'];
$maxsize ="Your size limit";
$location='Your location to upload file';
// perform any security check operation here.... and then
if($size <= maxsize)
{
if(move_uploaded_file($tmp_name, $location.$name))
{
// perform your operation down here
}
}
}
注意: - $ _FILES ['file'] ['name']在此行文件中代表表单文件字段的名称。