2

$_FILESの処理ページでインデックスが見つからないというエラーが発生します。私の知る限り、私のコードは技術的に正しいです(少なくとも、それを見た他の2人はエラーを見つけることができません)。

したがって、最初に、ファイルのアップロードを含むフォームを表示するために呼び出される関数は次のとおりです。

function portfolioEditor($p) {
    echo "<form method=\"post\" action=\"" . siteurl . "/manage/update.php\">";
    echo '<input type="text" name="name" id="name" class="grid4 first" value="' . $p['name'] . '" />';
    echo '<input type="text" name="posttype" id="posttype" class="grid4" value="' . $p['posttype'] . '" />';
    echo "\n<br />\n";
    echo '<textarea name="content" id="content" class="grid8 first">' . $p['content'] . '</textarea>';
    echo "\n<br />\n";
    echo '<input type="hidden" name="MAX_FILE_SIZE" value="30000" />';
    echo '<input name="file" value="' . $p['image'] . '" id="file" type="file" />';
    echo '<input type="submit" value="Submit" name="submit" id="submit" />';
    echo '<input type="hidden" value="true" id="fileup" name="fileup" />';
    echo '</form>';
}

(フォームのあるページがportfolioEditor($ p)を呼び出し、$ pの詳細が入力されているか、新しいアイテムの場合は空白になっていると考えてください。)

これは更新ページです(データベースはまだ挿入されていません)

$p = $_POST;

$p['url'] = str_replace(" ", "-", $p['name']);

foreach ($p as $k => $v) {
    $p[$k] = addslashes($v);
    //echo $v;
}

// FILE UPLOAD IF NEEDED
if(isset($p['fileup']) && $p['fileup'] == "true") {
    $loc = sitepath . "/files";
    $loc = $loc . basename( $_FILES['file']['name']);
    move_uploaded_file($_FILES['file']['tmp_name'], $loc);
}

なぜこれが機能しないのかわかりません。独自のアップロードスクリプトを作成する際に見たすべてのリソースは、ほぼ同じコードを使用しています。

4

3 に答える 3

5

これをフォームに追加する必要があります。

enctype='multipart/form-data'

したがって、フォームタグは次のようになります。

echo "<form method=\"post\" enctype='multipart/form-data' action=\"" . siteurl . "/manage/update.php\">";
于 2011-04-21T13:11:09.193 に答える
3

formタグ属性として追加encytype="multipart/form-data"

echo "<form method=\"post\" action=\"" . siteurl . "/manage/update.php\" encytype=\"multipart/form-data\">";
于 2011-04-21T13:11:34.737 に答える
1

ファイルを送信するときは、フォームにenctype="multipart/form-data"次のように定義されている必要があります。

echo "<form 
method=\"post\"
enctype=\"multipart/form-data\"
action=\"" . siteurl . "/manage/update.php\">";
于 2011-04-21T13:12:37.990 に答える