2015-10-28 3 views
0

Я хочу загрузить документы с расширениями doc, docx и pdf на сервере. для этого я использовал следующий код, но я не могу загрузить файлызагрузить doc, docx, pdf файлы на сервере с помощью php

<?php 
if($_POST['save']) 
    { 

     $target_dir = "reqdoc/"; 
     $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
     $uploadOk = 1; 
     $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
     if (file_exists($target_file)) 
      { 
       echo "Sorry, file already exists."; 
       $uploadOk = 0; 
      } 
     if ($_FILES["fileToUpload"]["size"] > 500000) 
      { 
       echo "Sorry, your file is too large."; 
       $uploadOk = 0; 
      } 
     if($imageFileType != "doc" && $imageFileType != "docx" && $imageFileType != "pdf") 
      { 
       echo "Sorry, only doc, docx, pdf"; 
       $uploadOk = 0; 
      } 
     if ($uploadOk == 0) 
      { 
       echo "Sorry, your file was not uploaded."; 
      } 
     else 
      { 
       if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) 
        { 
         echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
        } 
       else 
        { 
         echo "Sorry, there was an error uploading your file."; 
        } 
      } 
    } 
?> 

<p>&nbsp;</p> 
<form class="form-horizontal" role="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST"> 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <button type="submit" value="submit" name="save">Save</button> 
</form> 

я получил ошибку говоря

Sorry, file already exists.Sorry, only doc, docx, pdfSorry, your file was not uploaded. 

может кто-нибудь, пожалуйста, где код заладилось

+1

использование if..elseif..else –

+1

Добавьте 'ENCTYPE = 'многослойную/formdata'' в форму, скрытое поле под названием' MAX_FILE_SIZE' с размером, в байтах, как ценность - это должно помочь – RamRaider

ответ

0

Попробуйте это ....

вы мисс «ENCTYPE =„многочастному/форм-данных“» в вашей форме

вы пишете код на стороне клиента, все, что вам нужно знать, является использование multipart/form-data, когда ваша форма содержит любые элементы.

http://www.faqs.org/rfcs/rfc1867.html

<?php 
if($_POST['save']) 
    { 

     $target_dir = "media/"; 
     $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
     $uploadOk = 1; 
     $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
     if (file_exists($target_file)) 
      { 
       echo "Sorry, file already exists."; 
       $uploadOk = 0; 
      } 
     if ($_FILES["fileToUpload"]["size"] > 500000) 
      { 
       echo "Sorry, your file is too large."; 
       $uploadOk = 0; 
      } 
     if($imageFileType != "doc" && $imageFileType != "docx" && $imageFileType != "pdf") 
      { 
       echo "Sorry, only doc, docx, pdf"; 
       $uploadOk = 0; 
      } 
     if ($uploadOk == 0) 
      { 
       echo "Sorry, your file was not uploaded."; 
      } 
     else 
      { 
       if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) 
        { 
         echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
        } 
       else 
        { 
         echo "Sorry, there was an error uploading your file."; 
        } 
      } 
    } 
?> 

<p>&nbsp;</p> 
<form class="form-horizontal" enctype="multipart/form-data" role="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST"> 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <button type="submit" value="submit" name="save">Save</button> 
</form> 
-1

Вы забыли положить enctype="multipart/form-data" в тег формы.

Смежные вопросы