2016-06-13 128 views
1

形式:文件信息没有传递到PHP

<form enctype="multipart/form-data" action="FileUpload.php" method="post"> 
        <label for="file" class="myLabel">Select File</label> 
        <input type="file" id="file" name="fileUpload"> 
        <input type="submit" class="submit" value="Upload File"> 

      </form> 

PHP:

if(isset($_FILES['fileUpload'])){ 
     $uploadName = $_FILES['fileUpload']['name']; 
     $uploadTmp = $_FILES['fileUpload']['tmp_name']; 
     $fileSize = $_FILES['fileUpload']['size']; 
     $fileType = pathinfo($uploadName, PATHINFO_EXTENSION); 
     $uploadName = trim($uploadName, "." . $fileType); 

     $uploadName = preg_replace("#[^a-z0-9.]#i","",$uploadName);//removes all spaces in their name 

     $uploadName = mt_rand(100000,999999) . "____" . $uploadName;//generates random number in front of name so multiple files of the smae name can be uploaded 

     if(($fileSize > 100024352638512)){//check file is less than 10gb 
      die("Error - File to big"); 
     } 

     if(!$uploadTmp){//checks to see if file is selected 
      die("No File Selected, Please Upload Again"); 
     }else{ 
      move_uploaded_file($uploadTmp,"uploads/$uploadName");//puts file into uploads directory 
     } 

    $sql = $con->query("INSERT INTO uploads (ID, Time ,Name, Type, Owner) VALUE 
    (NULL,CURRENT_TIMESTAMP(),'{$uploadName}','{$fileType}','{$_SESSION['UserID']}')")or die(mysqli_error($con));//inserts file into database 

     header("Location:Profile.php");//sends you to profile page 
     } 

的代码被执行到结束,但该文件没有上传到数据库中,我有PHP之前工作,但我改变了输入按钮的工作方式,现在它不工作。我会很感激任何帮助,因为我还是一位新开发人员。

+0

你期待实际的文件进入数据库或只是文件名? – developerwjk

回答

0

沿着Lucha Laura的回答 - 如果文件上传并成功移动,我会怀疑你插入的值违反了数据库字段的约束。

将NULL插入主键在MySQL中有效,但其他字段可能没有正确配置。检查字段的字段类型,长度和not_null要求,并确保它们接受您发送的值。预览实际值的简单方法是使用error_log()将信息发送到错误日志。

有点无关 - trim()不会做你正在努力完成的事情。看看strstr()preg_replace()