簡體   English   中英

使用mysql和php上傳文件

[英]File upload with mysql and php

好的,我決定將其重試為另一種方式。.這是我的代碼的缺點,現在它一直說無效的文件大小。

<?php
      session_start();
      include "connect.php";
      if ( $_POST[ "submit" ] ) {
             if ( $_SESSION[ "name" ] ) {
                    $name = $_FILES[ "file" ][ "name" ];
                    $type = $_FILES[ "file" ][ "type" ];
                    $size = $_FILES[ "file" ][ "size" ];
                    $tmp_name = $_FILES[ "file" ][ "tmp_name" ];
                    $error = $_FILES[ "file" ][ "error" ];
                    if ( $type == "image/jpeg" || $type == "image/gif" ) {
                           if ( $size > 1100000 && $size < 1700000 ) {
                                  if ( $error > 0 ) {
                                         echo "Error!!!!!!" . $error;
                                  } else {
                                         if ( file_exists( "upload/" . $name ) ) {
                                                echo $name . " already exists.";
                                         }
                                  }
                           } else {
                                  $location = "upload/" . $name;
                                  move_uploaded_file( $tmp_name , $location );
                                  $user = $_SESSION[ "name" ];
                                  $sqlcode = mysql_query( "INSERT INTO tblFile (id,user,location) VALUES ('','$user','$location')" );
                                  echo "<a href='$location'>Click here to view your image.</a>";
                           }
                    }
             } else {

                    echo "Please check the size of your File..";
             }
      } else {
             echo "Invalid file format.";
      }

 ?>

索引是:

<?php

session_start();
$_SESSION["name"] = "Admin";

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>File Upload</title>
<link href="styles.css" type="text/css" rel="stylesheet" />
</head>
<body>


<form enctype="multipart/form-data" action="upload.php" method="post">

Select File: <input type="file" name="uploadFile">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000"/>
<input name="Submit" type="submit" value="Upload File">

</form>

如果此文件/上傳不是一回事,那就是另一回事。 我仍然必須能夠使用戶上載.png或.jpg文件,將圖像調整為縮略圖大小,並將縮略圖和常規尺寸圖像的副本都保留在一個文件夾中。 並能夠將數據插入數據庫中的新表中。 我想我比以前更加接近了。

這行可能會決定您的最大文件大小

<input type="hidden" name="MAX_FILE_SIZE" value="1000000"/>

嘗試增加它,然后再試一次?

<input type="hidden" name="MAX_FILE_SIZE" value="2000000"/>

到底是什么

if ( $_SESSION[ "name" ] ) {

應該完成? 該語句失敗會導致您得到輸出。

驗證您的if邏輯(僅通過查看縮進級別即可輕松看到),然后重試。

嘗試一下,我已經重構並“清理”了您的代碼。

<?php
session_start();
include "connect.php";

if($_POST['submit']) {
   $name = $_FILES['file']['name'];
   $type = $_FILES['file']['type'];
   $size = $_FILES['file']['size'];
   $tmp_name = $_FILES['file']['tmp_name'];
   $error = $_FILES['file']['error'];
   if($type == "image/jpeg" || $type == "image/gif" || $type == "image/pjpeg")
   {
     if($size > 1100000 && $size < 1700000)
     {
       if($error > 0)
         echo "Error Upload #: " . $error;
       else
       {
         if(file_exists("upload/" . $name))
           echo $name . " already exists.";
         else
         {
           $location = "upload/" . $name;
           move_uploaded_file( $tmp_name , $location );
           $user = $_SESSION[ "name" ];
           $sqlcode = mysql_query( "INSERT INTO tblFile (id,user,location) VALUES ('','$user','$location')" );
           echo "<a href='$location'>Click here to view your image.</a>";
          }
        }
      }
      else
      {
        echo "Invalid file size.";
      }
   }
   else
     echo "Invalid file format.";
}
else
    // invalid due to post submit not set
?>

並且,應用@jakenoble建議的更改。 <input type="hidden" name="MAX_FILE_SIZE" value="2000000"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM