2015-03-25 54 views
1

我有一个页面上有两种形式,应该给用户posibility加载文件到服务器(从网址或从用户的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 />'; 
    } 
?> 

第一种形式加载文件很好,但第二个完全不起作用。我甚至没有收到任何错误信息。

我在做什么错?或缺少什么?

+0

使用的功能是'move_uploaded_file()以',不'move_upload_file()' – D4V1D 2015-03-25 10:56:25

+0

另外,如果没有输出,也许是因为病情'如果($ _ POST [ 'photoloc'])'是永远见过面吗? – D4V1D 2015-03-25 10:57:33

+0

@ D4V1D,谢谢!改变右边的'move_uploaded_file()'有助于解决问题! – Anatoly 2015-03-25 12:18:26

回答

0

这里是正确的代码,它正在工作。在你的代码中第二种形式缺少花括号,isset()函数应该用来检查发布的数据集。

<?php 
     $tmpname=rand().".jpg"; 
     if (isset($_POST['photoload'])) { 
     echo '1st'; 
     $file=file_get_contents($_POST['photoorig']); 
     $fp = fopen("/var/www/html/uploads/tmp/".$tmpname, "w"); 
     fwrite($fp, $file); 
     fclose($fp); 
     } 
     if (isset($_POST['photoload2'])) { 
     echo '2nd'; 
     $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 />'; 
       } 
     } 
    ?> 
+0

现在,它的工作原理!同样,我将@ move_upload_file()更改为'move_uploaded_file()'@D4V1D。 – Anatoly 2015-03-25 12:16:51