【发布时间】:2012-02-17 14:49:42
【问题描述】:
我要求用户上传文件,通过以下表单向另一个页面 Upload.php 发出 POST 请求
<form name="input" action="upload.php" method="post" enctype="multipart/form-data">
Username: <input type="text" name="username" /><br/>
<input type="file" name="file" /> <br/>
<input type="submit" value="Submit" />
</form>
在 Upload.php 中,我使用之前表格中填写的数据使用 Curl 函数发出 POST 请求,为此我编写了以下代码:
$data = array(
"username" => $username,
"password" => $password,
"title" => $title,
"srcfile" => "@".$_FILES['file']['tmp_name']);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_URL, $api);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response=curl_exec($ch);
echo $response;
这样我可以成功上传文件,但是上传的文件的名称没有由此设置的任何扩展名
$_FILES['file']['tmp_name']
因此我无法使用服务器上的文件。
我应该如何使用从 POST 请求中获得的文件来发出另一个 POST 请求?
提前致谢。
【问题讨论】:
-
嗨,欢迎来到 StackOverflow!查看您的代码,您似乎对 PHP 中文件上传的工作方式缺乏了解。查看手册,如果您仍然难以实现您的目标,请再试一次并更新您的问题:php.net/manual/en/features.file-upload.post-method.php
-
也尝试过使用 "srcfile" => "@".$_FILES['srcfile']['tmp_name'].";type=".$_FILES['srcfile']['type '] 但仍然无法正常工作
-
虽然我使用的是 PHP 5.3.1 bugs.php.net/bug.php?id=48962,但我遇到了这个 PHP 错误
标签: php post file-upload