2012-02-15 12 views
-1

は、私は基本的なアップロードフォームがあります。PHPファイルアップロード

<form method="post" action="" enctype="multipart/form-data" >  
    <input type="file" name="logo"> 
    <input type="submit" class="button-primary" value="Upload Image"> 
</form> 

をそして、これは私がものを(これらはWordPressの機能ですが、問題はむしろ、PHP関連のあるので、私は、ここに求めていないよアップロードする方法ですWP-SE)上:

if ($_FILES) { 
    foreach ($_FILES as $file => $array) { 
    $uploaded = insert_attachment($file,$post_id); 
    $uploaded_src = wp_get_attachment_url($uploaded); 
    update_option('logo', $uploaded_src); 
    }  
} 

は今、二つの問題があると私はそれらを修正するかどうかはわかりません。

  1. は、ユーザーがファイルAをアップロードするとき画像がアップロードされています。しかし、ユーザーがページをリフレッシュすると、iamgeは再びアップロードされます。もう一度、そしてもう一度。私はフォームが爽やかな後にそれを送信していると信じて、それを修復する最も簡単な方法は何ですか?

  2. 「ロゴ」と呼ばれるオプションが1つだけ表示されます。アップロードフィールドの名前を取得してforeachループに渡す方法は、ページにアップロードするフィールドを増やすことができますか?つまり、update_option('ThisFormUploadInputID', $uploaded_src);のようなものです。

ありがとうございます! :)

答えて

1

ユーザーがファイルをアップロードして[画像をアップロード]をクリックすると、画像は にアップロードされています。しかし、ユーザーがページをリフレッシュすると、iamgeは一度アップロードされます。 もう一度、そしてもう一度。私はフォームが爽やかになった後に を送信していると信じています。それを修復する最も簡単な方法は何ですか?

PRG pattern - 正常に終了した場合は、Locationヘッダーを送信してスクリプトを終了してください。ブラウザからの次のリクエストはGETになり、ページを更新するとフォームは再送信されません。

2番目の質問については、print_r($_FILES)が参考になる場合があります。

0

2番目の質問:
さらに多くのファイルやガイドデータを追加するには、さらにフィールドが必要ですか?ファイルの場合は、前のように答えがあります - var_dump($_FILES)を見てください。データ入力が必要な場合は、$_POSTを参照してください。

爽やかさについて。
はい、あなたはLocationヘッダーをPHPから送信できますが、Headers already sentという警告が出る可能性があります。だからJSを使用して<script>document.location="www.yourdomain.com"</script>

関連する問題