2017-03-14 8 views
0

現在ローカルホスト上で実行されている自分のサイトへのアップロードを送信しています。 .xlsxファイルをアップロードしようとすると、「申し訳ありませんが、このファイルをアップロードできません。申し訳ありませんが、ファイルはアップロードされていません。コードは次のとおりです。.xlsxのアップロードがPHPで動作していません

<?php 
$target_dir = "uploads/"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$uploadOk = 1; 
$uploadFileType = pathinfo($target_file,PATHINFO_EXTENSION); 


// Check file size 
if ($_FILES["fileToUpload"]["size"] > 500000) { 
    echo "Sorry, your file is too large."; 
    $uploadOk = 0; 
} 
// Allow certain file formats 
if($uploadFileType != "xlsx") { 
    echo "Sorry, you cannot upload this file."; 
    $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)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 
?> 

フォーム:

<form id="uploadbanner" enctype="multipart/form-data" method="post" action="uploads.php"> 
<input id="fileupload" name="myfile" type="file" /> 
<input type="submit" value="Submit" id="submit" /> 
</form> 
+0

'$ uploadFileType'とは'xlsx'であってはいけません。 – chris85

+0

使用しているフォームを投稿できますか? – motanelu

+0

私はPHPにはとても新しいので、 '$ uploadFileType'を宣言することは、' pathinfo($ target_file、PATHINFO_EXTENSION) 'の出力に依存する変数として宣言していなかったことを認識していませんでした。私は、 'xlsx'に' $ imageFileType'と同等のものが必要だと仮定しています。あれは正しいですか? –

答えて

-1

はこれを試してみてください:

$target_file = $_FILES["myfile"]["name"]; 
$uploadOk = 1; 
$uploadFileType = pathinfo($target_file,PATHINFO_EXTENSION); 


// Check file size 
if ($_FILES["myfile"]["size"] > 500000) { 
    echo "Sorry, your file is too large."; 
    $uploadOk = 0; 
} 
// Allow certain file formats 
if($uploadFileType != "xlsx") { 
    echo "Sorry, you cannot upload this file."; 
    $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["myfile"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["myfile"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 
+0

これは事実上すべて同じコードです。 **あなたが**変更した理由とその理由を説明してください。 – ceejayoz

+0

これはファイルタイプエラーの問題を解決しました。まだアップロードを許可していません。 "あなたのファイルをアップロードする際にエラーが発生しました。"アップロードされたディレクトリは777に設定されています。 –

+0

$ _FILES配列の名前をフォームのものと一致するように変更しました。その部分では、ログをチェックし、$ _FILESの内容を調べる(var_dump)必要があります。情報を提供するエラーパラメータがあります。 – motanelu

0

はあなたの問題を解決しますname="fileToUpload"にご入力ファイルの名前を変更します。

<form action="" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 
</form>