1

ここで問題を確認できますhttp://bmi.sf.net/test.html

私が使用している正確なコードについては、このWebサイトを右クリックしView sourceてメニューから選択してください。

Jasny ブートストラップ ファイルアップロード プラグインを使用しています。このプラグインを使用するフォームがあります。フォームは、$_FILES 配列が操作される php ファイルに送信されます。

上記のコードでは、jQuery フォーム プラグインを使用して、フォーム送信のライブ プレビューを表示しています。PHPはただ1つのことをしています:print_r($_FILES)

次の一連のアクションが発生した場合を除いて、うまく機能しています。 $_FILES 配列は空です:

  • ユーザーがファイルを選択します。通常の php 出力を表示します。
  • 次に、ユーザーは「x」ボタンを使用してフォームをクリアします。期待どおり空の配列を表示します。
  • ユーザーが新しいファイルをロードします。現在、配列は予想に反して空です。

これを修正する方法は?

ユーザーが最初にフォームをクリアせずに新しいファイルを直接ロードした場合、配列は空ではありません。ただし、すべてのユーザーがこれを行うわけではないため、特定の問題を解決したいと考えています。

4

1 に答える 1

1

競合状態のように見えます。fileupload プラグインは の名前をクリアし、<input type="file">を設定し<input type="hidden">て、クリアを押すか送信するかの違いを通常の形式で変更せずにサーバーに伝えます。ただし、あなたの場合、この動作は望ましくありません。

手早く汚い修正を行うには、常に変更時の名前を設定<input type="file">します。

$('#filep').on('change', function() { $(this).attr('name', 'filep') });
于 2013-07-04T15:50:04.770 に答える