1

ドラッグアンドドロップアップローダーを作成しようとしています。ドラッグアンドドロップの部分を作成しましたが、PHPを作成する必要があり、何をすべきかわからないまま行き詰まります。私の問題は、move_uploaded_file();を使用できないことです。ないので

<input type="file">

提出されます。これを回避する方法はありますか?また、何を使用/実行する必要がありますか?

私は完全なコード例を求めているのではなく、私にとって次に何が起こるかについての手がかりを求めています。

4

2 に答える 2

1

アイデアを得るためにこの実装を調べてください。

/**
 * Save the file to the specified path
 * @return boolean TRUE on success
 */
function save($path) {    
    $input = fopen("php://input", "r");
    $temp = tmpfile();
    $realSize = stream_copy_to_stream($input, $temp);
    fclose($input);

    if ($realSize != $this->getSize()){            
        return false;
    }

    $target = fopen($path, "w");        
    fseek($temp, 0, SEEK_SET);
    stream_copy_to_stream($temp, $target);
    fclose($target);

    return true;
}

私は自分のプロジェクトの1つでそのような実装を使用しています:

$savePath = '/home/user/uploaded_files/picture.png';

if(!isset($_FILES['qqfile']['tmp_name'])) {
    $input = fopen('php://input', 'r');
    $temp = tmpfile();
    stream_copy_to_stream($input, $temp);
    fclose($input);
    $target = fopen($savePath, 'w');
    fseek($temp, 0, SEEK_SET);
    stream_copy_to_stream($temp, $target);
    fclose($target);
} else {
    move_uploaded_file($_FILES['qqfile']['tmp_name'], $savePath);
}
于 2012-09-24T18:33:24.843 に答える
-2

PHP では、実際にフォームを送信しなければならない可能性が高くなります。フレーム内の JavaScript を介してフォームを送信したとしても、現在のページが実際に移動することはありません。

実際のフォームを送信すると、を使用できるようになりますタグの属性をmove_uploaded_file()忘れないでください。enctype="multipart/form-data"form

于 2012-09-24T18:33:46.730 に答える