2016-09-19 111 views
0

我在一个网站上工作,并有一个小问题。 我想上传我的服务器上的excel文件。 我之前用图片做了类似的事情(上传profilpicture)。有没有可能为Excel文件更改该代码?上传Excel到服务器

<form enctype="multipart/form-data" action="Profil.php" method="POST">     
      <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
      <input type="file" name="fileToUpload" id="fileToUpload"> 
      <input type="submit" id="Upload" name="submit" value="Upload"> 
     </form> 

和脚本:

<?php 
if(isset($_POST["submit"])) 
// 
{ 

    $target_dir = "Profilbilder/"; 
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
    $filename = $_FILES["fileToUpload"]["name"]; 
    $file_ext = substr($filename, strripos($filename, '.')); // get file name 
    $newfilename = $_SESSION['loginUsername'].$file_ext ; 
    $uploadOk = 1; 
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 

    // Check if image file is a actual image or fake image 
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
    if($check !== false) 
    { 
     //echo "File is an image - " . $check["mime"] . "."; 
     $uploadOk = 1; 
    } else 
    { 
     //echo "File is not an image."; 
     $uploadOk = 0; 
    } 
    // Check file size 
    if ($_FILES["fileToUpload"]["size"] > 500000) 
    { 
     //echo "Sorry, your file is too large."; 
     $uploadOk = 0; 
    } 

    // Allow certain file formats 
    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"&& $imageFileType != "gif") 
    { 

     //echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
     $uploadOk = 0; 
    } 

    // Check if $uploadOk is set to 0 by an error 
    if ($uploadOk == 0) 
    { 
     //echo "Sorry, your file was not uploaded."; 
    // if everything is ok, try to upload file 
    } else 
    { 
     //if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) 
     if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir.$newfilename)) 
     {   
      echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
     } else 
     { 
      echo "Sorry, there was an error uploading your file."; 
     } 
    } 
} 
?> 

有没有人的想法?

回答

0

改变这个字符串

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"&& $imageFileType != "gif") 

是这样的

if($file_ext != "xls" && $file_ext != "xlsx" && $file_ext != "csv") 

它的快速和肮脏的和有做检查元的更好的方法,但它会工作。

重要提示

,还应注意其大量不安全的,因为什么能阻止你重命名一个.exe文件到.xls和再上传左右。检查上传文件的元类型可能会更好。

+0

现在代码运行直到上传。但move_uploaded_file($ _ FILES [“fileToUpload”] [“tmp_name”],$ target_dir。$ newfilename)不起作用。你有想法吗? – nicoschuck

+0

您需要删除getimagesize以及if check check语句。还要确保您的文件保存路径可由Web服务器写入 – Dave