加载文件到服务器

Loading file to server

我在一个页面上有两个表单,可以让用户将文件加载到服务器(从 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 />';
   }
?>

第一种形式可以很好地加载文件,但第二种形式根本不起作用。我什至没有收到任何错误消息。

我做错了什么?或者遗漏了什么?

这是正确的代码,它是 working.In 您的代码在第二种形式中缺少大括号,并且 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 />';
                }
       }
    ?>