1

単純な複数ファイルのアップロード フォームがあり、それを処理する PHP をここに示します。私が抱えている問題は、ファイルをアップロードしないことです。それが行うことは、ファイル拡張子なしで「Array」という名前のファイルを保存することです。

これまでの私のコードは次のとおりです。

<form method="post" action="" enctype="multipart/form-data">
    <input name="note[]" type="file" multiple="multiple">
    <button type="submit" name="upload_notes">Upload</button></p>
</form>

$upload_notes = ( isset($_POST['upload_notes']) ? true : false );

if ($upload_notes) {

    $user_notes_folder = 'user-notes/'
    $valid_formats = array("doc", "pdf", "docx", "rtf");
    $max_file_size = 100000;
    $count = 0;

    foreach ($_FILES['note']['name'] as $f => $name) {     
        if ($_FILES['note']['error'][$f] == 4) {
            continue;
        }          
        if ($_FILES['note']['error'][$f] == 0) {               
            if ($_FILES['note']['size'][$f] > $max_file_size) {
                $message[] = "$name is too large!.";
                continue; 
            }
            elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
                $message[] = "$name is not a valid format";
                continue;
            }
            else{ 
                if(move_uploaded_file($_FILES["note"]["tmp_name"][$f], $user_notes_folder.$_FILES["note"]["name"]))
                $count++;
            }
        }
    }
}
4

2 に答える 2

1

$user_notes_folder.$_FILES["note"]["name"]配列です。

おそらくそうである必要があります

$user_notes_folder.$_FILES["note"]["name"][$f]
于 2013-09-20T10:15:02.210 に答える
0

これは、$_FILES["note"]["name"] が実際には配列であるためです。以下を変更します。

if(move_uploaded_file($_FILES["note"]["tmp_name"][$f], $user_notes_folder.$_FILES["note"]["name"]))

に :

if(move_uploaded_file($_FILES["note"]["tmp_name"][$f], $user_notes_folder.$_FILES["note"]["name"][$f]))
于 2013-09-20T10:23:56.317 に答える