2011-11-07 18 views
0

私のローカルサーバー上でphpを使用してファイルをアップロードしようとしていますが、スクリプトを実行した後(非常に単純です)、情報をエコーするページは空白です。誰かが問題の原因を見つけ出すのを助けてくれますか?私は多くの異なる投稿を読んでみましたが、解決策を見つけることができません。 おかげphpファイルのアップロードが機能しない - 空白のページ

HTML

<form enctype="multipart/form-data" action="upload.php" method="POST"> 
<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
Choose a file to upload: <input name="uploadedfile" type="file" /><br /> 
<input type="submit" value="Upload File" /> 
</form> 

PHP

<?php 
// Where the file is going to be placed 
$target_path = "tmp/"; 
$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 
$target_path = "tmp/"; 
$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    echo "The file ". basename($_FILES['uploadedfile']['name']). 
    " has been uploaded"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
} 
?> 

私はこのことから何かを得ていませんよ。ただの空白のページ...そして、私がtmpディレクトリをチェックするとき、何もそこにありません...どんな提案ですか?

が、それは二つの部分だったが判明:私はXAMP

EDITを使用しています。 #1 DIRの許可、#2サーバのDNSからxamppディレクトリを参照する必要がありました。どちらが奇妙なのかは、通常はローカルホストを経由して正常に動作するためです。 XAMPP自体に問題があったと思います。

ありがとうございました!

+0

コードに間違いがありますか?ログに何か有用なものはありますか?デバッグするとき、どの時点でコードが予想された動作から逸脱していますか? – David

+0

エラー報告を有効にします。 –

+0

サイズ/拡張子/ファイルタイプを確認していますか?エラーがmove_uploaded_fileに存在し、他の場所ではないと確信していますか?あなたがチェックをしていないのであれば、あなたのサーバーはすぐにあなたを憎むだろう:) –

答えて

0

私は実際にあなたのコードを実行して、それは完全に正常に動作します。唯一の問題は許可ですが、ファイルを移動できるようにするには、/ tmpディレクトリに0777のアクセス権があることを確認してください。ここにコードを実行した:

<?php 
// Where the file is going to be placed 
if(isset($_FILES['uploadedfile'])){ 

$target_path = "img/"; 
$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 
$target_path = "img/"; 
$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    echo "The file ". basename($_FILES['uploadedfile']['name']). 
    " has been uploaded"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
} 
} 
?> 


<form enctype="multipart/form-data" action="" method="POST"> 
<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
Choose a file to upload: <input name="uploadedfile" type="file" /><br /> 
<input type="submit" value="Upload File" /> 
</form> 
+0

isset()は有効なアップロードをチェックするのに十分ではありません。失敗したアップロードには$ _FILESエントリもありますが、大部分のデータは欠落/無効で、エラーコードはゼロ以外です。 –

+0

私はアップロードのためのチェックを主張していませんでした。彼は自分自身でその部分をやらなければなりませんでした。これはhtmlとPHPの両方を一つのページに持っていた簡単なハックです。$ _FILESエラーなどの配列 –

2

アップロードが進行している間を除いて、一時ディレクトリは空です。アップロードしたファイルは、PHPが自動的に削除します。あなたのサーバーとPHPログをチェックしてエラーメッセージを探し、スクリプトにエラー処理を間違いなく追加することをお勧めします。あなたは、アップロードが良いされていない、成功したと仮定している:

if ($_FILES['uploadedfile']['error'] === UPLOAD_ERR_OK) { 
    ... your code here ... 
} else { 
    die("Upload failed with error code " . $_FILES['uploadedfile']['error']); 
} 

コードがhereに定義されています。

+0

それは私がそれを感謝したことがない素晴らしいポイントです! – Fahad

関連する問題