2016-06-23 7 views
-1

Imが問題を抱えています.scsファイルをphpスクリプトにインポートしてmysqlサーバに追加します。im localにサーバをホストしています。ファイルが実際にどこにあるのか私のデスクトップ上に保存されているのではなく、ウェブサイトが保存されているファイルを探しているからです。php imorting fileはサーバ上で検索を続けます

 <form id="import" action="edit.php" method="post" enctype="multipart/form-data"> 
    Select BOM .csv file to upload: 
    <input name="file" type="file" required="required" id="file" form="import"> 
    <input name="submit" type="submit" form="import" value="import"> 
    <?php 
    if(isset($_POST['submit'])) 
    { 
     $file = $_FILES['file']; 
     $query = "LOAD DATA INFILE '$file' INTO TABLE `boards` FIELDS TERMINATED BY ',' IGNORE 1 LINES"; 
     $Result = mysql_query($query) OR die(mysql_error()); 
    } 

    ?> 
    </form> 

誰もが実際の.csvファイルをアップロードする方法を知っていますので、SQLデータベースに追加できますか?

+0

サーバーはどのようにデスクトップにアクセスできますか?不可能です。 –

+2

あなたはFILES配列のtmp_nameを必要とします。http://php.net/manual/en/reserved.variables.files.phpファイルがアップロードされると、サーバは最初にファイルをtempフォルダに保存してからphpを実行するので、ファイルはPHPの前にアップロードされます。あなたはちょうど一時フォルダからそれを引き出し、それを長期保存したい場所に移動する必要があります。またはそれを読むなど – ArtisticPhoenix

答えて

0

おそらく問題は、ファイルの実際の名前/場所が必要なことです。これであなたがファイルに付けた名前だと思うかもしれません。しかし、それは実際にはサーバが持っているファイルのコピーを与える名前です。これは、すべての種類のファイル名(特殊文字)の不快さを避け、重複する名前が上書きされないようにするために行われます。 PHPでは、スーパーグローバル$ _FILES内のあなたはtmp_name(この混乱/tmp/php/php6hst32)は、サーバー上の実際の物理的なファイルである見ることができるように、名前のキーがあるtmp_name

[file] => Array 
    (
     [name] => MyFile.jpg 
     [type] => image/jpeg 
     [tmp_name] => /tmp/php/php6hst32 
     [error] => UPLOAD_ERR_OK 
     [size] => 98174 
    ) 

キー配列としてこれを見つけるだろうアップロード時に指定した名前(文字列)。ほとんどの場合、rename()関数を使用して名前を変更して移動することができます。 rename($_FILES['tmp_name'], 'path to your upload place/'.$_FILES['name']);copy()のように、ファイルをコピー/移動した後に元に戻した名前を入れます(この場合はtmp/php /)。

またmove_uploaded_file()http://php.net/manual/en/function.move-uploaded-file.php

を使用することができますそれとも、ただ一時フォルダから開くことができます。アップロードされたファイルを他のオプション(または最初のファイル)に移動するのにはセキュリティ上の理由があるかもしれませんが、それは別の日のためのものです。

関連する問題