2017-01-10 11 views
-1

は、私はすでに、画像をアップロードするには、このコードを使用し、それが働いていたが、今私はdocxファイルとPDFファイルをアップロードするためにそれを変更しようとしているが、それは常にエラーのみdocxファイルとPDFファイルを与えている、それがチェックすることはできませんdocxとpdfの拡張子はjpg、pngなどです...? 私の英語申し訳ありません。PHPのアップロードdocxファイルとPDFファイル

<?php 
extract($_POST); 

$UploadedFileName=$_FILES['UploadImage']['name']['nome']; 
if($UploadedFileName!='') { 
    $upload_directory = "../../../documentos/formularios/"; 
    $nome=$_POST['nome']; 
    $TargetPath=time().$UploadedFileName; 
    $imageFileType = pathinfo($TargetPath,PATHINFO_EXTENSION); 
    $ficheirogrande='<div class="alert alert-danger">O Ficheiro ultrapassa <strong>2 Megas</strong></div>'; 
    $preenchimentoobrigadorio='<div class="alert alert-danger">Campo <strong>nome</strong> de preenchimento obrigatório</div>'; 
    $apenasficheiros='<div class="alert alert-danger">Apenas Ficheiros <strong>PDF e DOCX</strong> podem ser inseridos</div>'; 

    if(empty($_POST['nome']) || false === filter_var($_POST['nome'])){ 
    echo $preenchimentoobrigadorio; 
    } else { 
    if ($_FILES["UploadImage"]["size"] > 2200000){ //2.09808 
     echo $ficheirogrande; 
    } else { 
     if($imageFileType != "application/msword" && $imageFileType != "docx" && $imageFileType != "pdf"){ 
     echo $apenasficheiros; 
     } else { 
     if(move_uploaded_file($_FILES['UploadImage']['tmp_name'], $upload_directory.$TargetPath)){ 
      $caminho="documentos/formularios/$TargetPath"; 
      $queryinserir="INSERT INTO DOCUMENTOS(LINK_DOCUMENTOS,NOME,FORMULARIOS) VALUES ('$caminho','$nome','1')"; 

      mysqli_query($conn,$queryinserir); 

      $enviado='<div class="alert alert-success">Documento Inserido com <strong>Sucesso</strong></div>'; 
      echo $enviado;  
     } else {  
      $naoenviado='<div class="alert alert-danger">Documento <strong>Nao Inserido</strong></div>'; 
      echo $naoenviado; 
     } 
     } 
    } 
    } 
} 
?> 
+0

'$ _FILES [ 'UploadImage'] [ '名前'] [ 'ノーム']'は何ですか?この行に誤りはないのですか?あなたはおそらく、ファイル拡張子として 'アプリケーション/ msword'を持つことは決してありませんように' PATHINFO_EXTENSION'は、ファイルの拡張子を返します。また、代わりに '&&'それ以外の場合は、意志の '|| {'あなたは '使うべき'の場合($ imageFileType!= "アプリケーション/ mswordは" && $ imageFileType!= "docxファイル" && $ imageFileType!= "PDF")この行で常にfalseを返すと、それはあなたがいつもエラーを取得している理由です... – EhsanT

答えて

0

あなたは$targetPathで新しいファイルを保存していないので、ファイルが存在しないと、あなたは拡張子も

を得ることができない、拡張子を使用して安全な方法ではありません。 MIMEタイプを使用する必要があります。

関連する問題