【发布时间】:2015-03-25 10:52:59
【问题描述】:
我在一个页面上有两个表单,应该让用户可以将文件加载到服务器(从 URL 或从用户的 PC)
<form method="post" action="bigorder.php" name="photourl">
<label for="photoorig">URL</label>
<input type="url" name="photoorig" placeholder="">
<input type="submit" value="Load" name="photoload">
<br>
</form>
<form method="post" action="bigorder.php" name="photofile" enctype="multipart/form-data">
<label for="photoloc">Load own file</label>
<input type="file" name="photoloc" id="photoloc">
<input type="submit" value="Load" name="photoload2">
</form>
还有php
<?php
$tmpname=rand().".jpg";
if ($_POST['photoorig']) {
$file=file_get_contents($_POST['photoorig']);
$fp = fopen("/var/www/html/uploads/tmp/".$tmpname, "w");
fwrite($fp, $file);
fclose($fp);
}
if ($_POST['photoloc']) {
$tmpFile = $_FILES['photoloc']['tmp_name'];
$newFile = "/var/www/html/uploads/tmp/".$_FILES['photoloc']['name'];
$result = move_upload_file($tmpFile, $newFile);
echo $_FILES['photoloc']['name'];
if ($result) {
echo ' was uploaded<br />';
} else {
echo ' failed to upload<br />';
}
?>
第一个表单可以正常加载文件,但第二个表单根本不起作用。我什至没有收到任何错误消息。
我做错了什么?还是遗漏了什么?
【问题讨论】:
-
要使用的函数是
move_uploaded_file(),而不是move_upload_file() -
另外,如果没有输出,可能是因为条件
if($_POST['photoloc'])从未满足? -
@D4V1D,谢谢!改到右边
move_uploaded_file()帮助解决了问题!
标签: php forms file-upload