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

时间:2013-01-02 10:27:26

标签: php mysql

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

                   <?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";
                  ?>

我有一个名为“upload”的文件夹,其中它将存储用户上传的所有文件。我的目标是将文件存储在mysql和“upload”文件夹中。文件的存储工作正常,没有错误消息,但我无法在“upload”文件夹中看到上传的文件。谢谢你的帮助!

4 个答案:

答案 0 :(得分:3)

"/home/u152912911/public_html/upload" . $_FILES["fileToUpload"]["name"]

/之后您缺少尾部斜杠upload。将其更改为:

"/home/u152912911/public_html/upload/" . $_FILES["fileToUpload"]["name"]

实际上,该文件将保存为upload目录中前缀为public_html的文件名。

如果可能的话,你应该使用相对路径来实现可移植性,很有可能只是

"upload/" . $_FILES["fileToUpload"]["name"]

......就够了。

无论其

你不应该像这样直接使用$_FILES["fileToUpload"]["name"]。考虑如果用户发送字符串../index.php作为文件名会发生什么 - 用户可以覆盖您的index.php文件。另外,考虑如果两个用户上传名为picture.jpg的文件会发生什么 - 第二次上传会覆盖第一个。

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

答案 1 :(得分:2)

你忘了斜线:

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"]);

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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