Php 无法查看上载到服务器上文件夹的图像

Php 无法查看上载到服务器上文件夹的图像,php,mysql,Php,Mysql,您好,我在服务器上载文件时遇到问题。这是我的代码: <?php session_start(); $user=$_SESSION['user_level']; Check if a file has been uploaded if(isset($_FILES['fileToUpload'])) {

您好,我在服务器上载文件时遇到问题。这是我的代码:

                   <?php
                   session_start();
                   $user=$_SESSION['user_level'];
                   Check if a file has been uploaded
                   if(isset($_FILES['fileToUpload'])) {
          // Make sure the file was sent without errors
                   if($_FILES['fileToUpload']['error'] == 0) {
         // Connect to the database
                   $dbLink = new mysqli('$host', '$username', '$pass', '$tbl_name');
                   if(mysqli_connect_errno()) {
                   die("MySQL connection failed: ". mysqli_connect_error());
                   }

             // Gather all required data
           //$id= mysql_insert_id(); 
                  $name = $dbLink->real_escape_string($_FILES['fileToUpload']['name']);
                  $mime = $dbLink->real_escape_string($_FILES['fileToUpload']['type']);
                  $data = $dbLink->real_escape_string
                  (file_get_contents($_FILES['fileToUpload']['tmp_name']));
                  $size = intval($_FILES['fileToUpload']['size']);

            // Create the SQL query
                  $query = "
                  INSERT INTO files (email,name,type,size,content)
                  VALUES ('$user','$name', '$mime', $size, '$data')";

           // Execute the query
                  $result = $dbLink->query($query);}}
          ?>
                  <?php 
                  move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
            "/home/u152912911/public_html/upload" . $_FILES["fileToUpload"]["name"]);
                ?>

                  <?php
                  if ($_FILES["fileToUpload"]["error"] > 0)
                  {
                  echo "Apologies, an error has occurred.";
                  echo "Error Code: " . $_FILES["fileToUpload"]["error"];
                  }
                  else
                  {
                  move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
                  "/home/u152912911/public_html/upload" . $_FILES["fileToUpload"] 
                  ["name"]);
                  }
                  if (($_FILES["fileToUpload"]["type"] == "image/DOC")
                  || ($_FILES["fileToUpload"]["type"] == "image/jpeg")
                  || ($_FILES["fileToUpload"]["type"] == "image/png" )
                  && ($_FILES["fileToUpload"]["size"] < 10000))
                  {
                  move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
          "/home/u152912911/public_html/upload" . $_FILES["fileToUpload"]["name"]);

              ECHO "Files Uploaded Succesfully";
              echo'<script type="text/javascript">

          window.location.href ="resume2.php"
                  </script>';
                   }
                  else
                  {
                  }
                  echo "Your Resume was Successfully Upload";
                  ?>

您在
上传
后缺少一个尾随斜杠
/
。将其更改为:

"/home/u152912911/public_html/upload/" . $_FILES["fileToUpload"]["name"]
实际上,文件被保存为
public\u html
目录中前缀为
upload
的文件名

如果可能,您应该使用相对路径来实现可移植性,很有可能

"upload/" . $_FILES["fileToUpload"]["name"]
…就足够了

然而 您不应该像这样直接使用
$\u文件[“fileToUpload”][“name”]
。考虑一下如果用户把字符串<代码>…/index .php < /代码>作为文件名,用户将能够覆盖你的<代码> index .php < /C>文件,会发生什么。另外,如果两个用户上传了一个名为“代码>图片.jpg p/代码>的文件,会发生什么情况?第二次上传会覆盖第一个。

相反,您应该为自己创建的文件使用一个名称——像这样依赖用户输入是不安全的

您在
上传
后缺少一个尾随斜杠
/
。将其更改为:

"/home/u152912911/public_html/upload/" . $_FILES["fileToUpload"]["name"]
实际上,文件被保存为
public\u html
目录中前缀为
upload
的文件名

如果可能,您应该使用相对路径来实现可移植性,很有可能

"upload/" . $_FILES["fileToUpload"]["name"]
…就足够了

然而 您不应该像这样直接使用
$\u文件[“fileToUpload”][“name”]
。考虑一下如果用户把字符串<代码>…/index .php < /代码>作为文件名,用户将能够覆盖你的<代码> index .php < /C>文件,会发生什么。另外,如果两个用户上传了一个名为“代码>图片.jpg p/代码>的文件,会发生什么情况?第二次上传会覆盖第一个。

相反,您应该为您自己创建的文件使用一个名称-像这样依赖用户输入是不安全的。

您忘记了斜杠:

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
          "/home/u152912911/public_html/upload" . $_FILES["fileToUpload"]["name"]);
应该是

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
          "/home/u152912911/public_html/upload/" . $_FILES["fileToUpload"]["name"]);
另外,请检查返回值是否成功,不要假设它成功。

您忘记了斜杠:

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
          "/home/u152912911/public_html/upload" . $_FILES["fileToUpload"]["name"]);
应该是

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
          "/home/u152912911/public_html/upload/" . $_FILES["fileToUpload"]["name"]);

另外,检查返回值是否成功,不要假设它。

请检查为存储文件的文件夹提供的权限。

请检查为存储文件的文件夹提供的权限。

如果它在本地主机上工作正常,并且在联机测试中出现问题,请要求服务器主机将文件夹权限更改为777。

如果在本地主机上工作正常,在线测试中出现问题,然后要求服务器主机将文件夹权限更改为777。

您可能没有将文件上载到该目录的正确权限。如果您在windows上,请尝试将上载目录的权限更改为777。请检查您是否有足够的权限修改文件夹。您可能没有将文件上载到该目录的正确权限。如果您在windows上,请尝试将上载目录的权限更改为777。请检查您是否有足够的权限修改该文件夹。谢谢!它现在正在工作!:)我也会考虑你的建议。非常感谢。它现在正在工作!:)我也会考虑你的建议。