2012-03-29 11 views
1

現在、単純なhtmlでphpでデータベースにcsvファイルをアップロードしようとしています。次のように私の問題は、私は実際にそう(私は非常に多くの疑問を持っている理由だと思う)ファイルをアップロードするhtml/php

を何が起こっているか、物事が/どのように働くか知りたいとにかく私のHTMLがあるさ:

<html> 
<form action="mysite.php" method="POST"> 
<input type="file" name="file"><br /> 
<input type="submit" value="Now upload it!"> 
</form> 
</html> 

私のPHPだけです:

<?php 
echo 'Success'; 
?> 

実際にファイルが実際に保存されている場所のデータベースに保存する前に、

サーバー上に一時ファイルとして作成されていますか? サーバーのRAMに保存されていますか? は、何かをするように言われていないので、それが実際に何もしない(通称:DBに保存)

おかげ

+2

まあ、今のところそれは、ファイルをアップロードする際に必要な不足している「マルチパート/フォームのデータ」形式のエンコードから開始し、何も(文字通り)本当にしません。先ほどの手順を少し研究する必要があります。http://php.net/manual/en/features.file-upload.php –

+2

この時点ではファイルをアップロードしていません。正しいenctypeが必要です。 '

'である。それをソートした後、あなたの受信スクリプトで 'print_r($ _ FILES);'を実行して情報がどのようにポストされているかを確認することをお勧めします。 – MetalFrog

+0

あなたのmysite.phpファイルで 'print_r($ _FILES);'を使ってください。あなたは前進できると思います。 – hjpotter92

答えて

2

はい、それはそれはあなたがエンコードの種類逃しませんので、サーバー上の一時ファイルではなく、あなたのケースで次のようになります。ここでは

<form enctype="multipart/form-data" action="__URL__" method="POST"> 

は、あなたができるphp file uploading

をアップロードするファイルのマニュアルです変数名にはvar_dump($ _ POST)を、ファイルのデータにはvar_dump($ _ FILES)を実行することで、何がアップロードされているかを理解するのに役立ちます。

ファイルがアップロードされたら、参照でわかるように、ファイルを一時的な場所から最終的な場所に移動する必要があります。

+0

死んでそれを打つ。まだエンコードタイプがないため、一時ファイルではありません。ありがとう。 – EGHDK

0

あなたはこのCSVをインポートしたい場合は、アップロード、それはその後、サーバーに保存されているファイルの場合にはデータベースには、PHPスクリプトを使用して(CSV Parser)それを解析し、DataBaseに挿入する必要があります。または、CSVのデータではなくファイルパスのみを保存する場合は、ファイルパスのみをDataBaseに保存する必要があります。

0

ファイルは、スクリプトが実行されている間は一時的に保存されます。情報は$ _FILESにあります。私は非常に基本的this

を読んでお勧めします

1

、ファイルはサーバー上の一時ファイルにHTTPを介してアップロード、およびPHP店れます。

グローバル$_FILES配列を使用して、その一時ファイルにハンドルを取得できます。

0

ファイルはサーバー上の一時ファイルに保存する必要があります。$_FILESスーパーグローバルを使用してファイルに関する情報を確認することができます。あなたは内部のだものを見るためにスーパーグローバルをダンプするために、スクリプトを変更してから始めることができます。

<?php 
print_r($_FILES); 
?> 

PHPはファイルのアップロードに対処するための便利な機能の選択を提供し、あなただけのファイルシステムに達するのではなく、これらを使用する必要があります - ファイルアップロードはユーザーの入力としてカウントされるため、セキュリティ上のリスクになります。

$filename = $_FILES['attachment']['tmp_name']; 
if (!is_uploaded_file($filename)) { 
    // error 
} 

そして、あなたがどこかでもっと便利にファイルを固執するmove_uploaded_file()機能を使用することができます:ファイルは、あなたが探しているものであれば、あなたは確認することから始めなければならない

if (move_uploaded_file($_FILES['attachment']['tmp_name'], '/more/useful/path') { 
    // all good 
} 

最後に、あなたが忘れてはなりませんファイル自体だけでなく、ファイル名とファイルサイズが報告され、ユーザーが提出したデータであり、使用前にこれらを適切に浄化することを確認してください。

便利なもののトンがここにあります:http://uk.php.net/manual/en/features.file-upload.php

関連する問題