2012-04-20 23 views
2

次のスクリプトでは、htdocsのtmpフォルダにファイルをアップロードしようとしましたが、ファイルがその場所に移動していません。ストレージの場所を定義するにはどうすればよいですか?PHPでファイル格納場所を定義する方法アップロードファイル

<?php 
if ($_FILES["file"]["error"] > 0) 
{ 
    echo "Error: " . $_FILES["file"]["error"] . "<br />"; 
} 
else 
{ 
    echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
    echo "Type:  " . $_FILES["file"]["type"] . "<br />"; 
    echo "Size:  " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
    echo "Stored in: " . $_FILES["file"]["C:\xampp\htdocs\tmp"]; 
} 

答えて

0

よく投稿したコードはファイルを移動していません。あなたは

move_uploaded_file ($_FILES["file"]["tmp_name"][$key], 'C:\xampp\htdocs\tmp\new_file.txt'); 
欠場

http://php.net/manual/en/function.move-uploaded-file.php

+1

未知の変数:C:\ xampp \ htdocsのキー –

+0

try:move_uploaded_file($ _FILES ["file"] ["tmp_name"]、 'C:\ xampp \ htdocs \ tmp \ new_file。 TXT' ); –

1

$_FILES["file"]["C:\xampp\htdocs\tmp"]存在してはいけません、代わりにしてみてください:

move_uploaded_file($_FILES['file']['tmp_name'], '/path/to/your/upload/directory/' . basename($_FILES['file']['name'])); 

ベアを念頭に置いて、このコードは、あなたがそのまま(そのまま)それを使用する場合は安全ではないことファイルのMIMEタイプ(thepropertools)を検証し、の最終ファイル名を検証する必要があります最低でもe。

+0

mime-timeではなく、実際のファイルをサニタイズする必要があります。また、誤解を招く可能性があるため、MIMEタイプのフィールドは完全には役に立ちません。 – hakre

+0

@hakre:私は混乱しています...私は彼がMIMEタイプを検証する必要があると言いました(例えば 'finfo' /' exif_imagetype'のような適切なツールを使ってイメージ/ *の場合)。 (例えば.htaccessファイルや '.php'ファイルを許可しないように)ファイル名をサニタイズします。 –

+0

@hakre:ファイルサニチジションが必要だと思う唯一のシナリオは、Zip Bombsを避けるために圧縮解除される圧縮ファイルですが、おそらく私があなたが意味することに従っていません。 –

関連する問題