私はいくつかの助けを使うことができます... blueimp jQueryファイルのアップロードをうまく機能させることができましたが、私はまだこれがまだ初心者です。jQueryなどについてはほとんど知らないので、はっきりと教えてください。可能な限りシンプル。具体的に説明します。
わかりました...私がこれで達成したいのは、人々が写真をアップロードできることです。そして、写真ごとに追加のオプションを選択します ドロップダウンメニュー)、さらに詳細を追加します( テキスト入力ボックス)。これらの追加のフォームフィールドは、アップロードされるファイルの配列とともに配列で渡されます。それぞれの ファイル名 彼らと一緒に 対応するメニューの選択と詳細 最終的には動的に生成された XMLまたはテキストファイル アップロードした写真と一緒に。
同様の質問がgithubで以前に出てきたことを知っており、このような解決策を見てきました(https://github.com/blueimp/jQuery-File-Upload/wiki/How-to-submit-additional-Form-Data )しかし、私は最新バージョンのプラグインを使用しており、それと同等のコードを私のファイルのいずれにも見つけることができません。
これまでのところ私は追加しました:
<td><b>Package:</b>
<select name="package[]"><option value="0">Basic</option><option value="1">Advanced</option><option value="2">Restoration</option></select>
</td>
<td>
<input type="text" name="notes[]">
</td>
に index.html ファイル(「削除」ボタンのコードの後)を閉じ、フォームの終了タグをテンプレートアップロードスクリプトの後に移動して、これらのフィールドを含めます。私はそれがあまり進歩していないことを知っています。
ここにindex.htmlのほとんどがあります
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/themes/base/jquery-ui.css" id="theme">
<link rel="stylesheet" href="../jquery.fileupload-ui.css">
<link rel="stylesheet" href="style.css">
<h2>File Upload</h2>
<div id="fileupload">
<form action="upload.php" method="POST" enctype="multipart/form-data">
<div class="fileupload-buttonbar">
<label class="fileinput-button">
<span>Add files...</span>
<input type="file" name="files[]" multiple>
</label>
<button type="submit" class="start">Start upload</button>
<button type="reset" class="cancel">Cancel upload</button>
<button type="button" class="delete">Delete files</button>
</div>
//</form> originally here, moved below
<div class="fileupload-content">
<table class="files"></table>
<div class="fileupload-progressbar"></div>
</div>
</div>
<script id="template-upload" type="text/x-jquery-tmpl">
<tr class="template-upload{{if error}} ui-state-error{{/if}}">
<td class="preview"></td>
<td class="name">${name}</td>
<td class="size">${sizef}</td>
{{if error}}
<td class="error" colspan="2">Error:
{{if error === 'maxFileSize'}}File is too big
{{else error === 'minFileSize'}}File is too small
{{else error === 'acceptFileTypes'}}Filetype not allowed
{{else error === 'maxNumberOfFiles'}}Max number of files exceeded
{{else}}${error}
{{/if}}
</td>
{{else}}
<td class="progress"><div></div></td>
<td class="start"><button>Start</button></td>
{{/if}}
<td class="cancel"><button>Cancel</button></td>
</tr>
</script>
<script id="template-download" type="text/x-jquery-tmpl">
<tr class="template-download{{if error}} ui-state-error{{/if}}">
{{if error}}
<td></td>
<td class="name">${name}</td>
<td class="size">${sizef}</td>
<td class="error" colspan="2">Error:
{{if error === 1}}File exceeds upload_max_filesize (php.ini directive)
{{else error === 2}}File exceeds MAX_FILE_SIZE (HTML form directive)
{{else error === 3}}File was only partially uploaded
{{else error === 4}}No File was uploaded
{{else error === 5}}Missing a temporary folder
{{else error === 6}}Failed to write file to disk
{{else error === 7}}File upload stopped by extension
{{else error === 'maxFileSize'}}File is too big
{{else error === 'minFileSize'}}File is too small
{{else error === 'acceptFileTypes'}}Filetype not allowed
{{else error === 'maxNumberOfFiles'}}Max number of files exceeded
{{else error === 'uploadedBytes'}}Uploaded bytes exceed file size
{{else error === 'emptyResult'}}Empty file upload result
{{else}}${error}
{{/if}}
</td>
{{else}}
<td class="preview">
{{if thumbnail_url}}
<a href="${url}" target="_blank"><img src="${thumbnail_url}"></a>
{{/if}}
</td>
<td class="name">
<a href="${url}"{{if thumbnail_url}} target="_blank"{{/if}}>${name}</a>
</td>
<td class="size">${sizef}</td>
<td colspan="2"></td>
{{/if}}
<td class="delete">
<button data-type="${delete_type}" data-url="${delete_url}">Delete</button>
</td>
<td><b>Package:</b>
<select name="package[]"><option value="0">Basic</option><option value="1">Advanced</option><option value="2">Restoration</option></select>
</td>
<td>
<input type="text" name="notes[]">
</td>
</tr>
</script>
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>
<script src="../jquery.iframe-transport.js"></script>
<script src="../jquery.fileupload.js"></script>
<script src="../jquery.fileupload-ui.js"></script>
<script src="application.js"></script>
意味が分からない upload.php ただし、files []配列がファイル名などで解析される場所、およびpackage []とnotes []配列をどこで受信するかがわからない場合は、それらを反復処理し、すべての情報をテキスト/ XMLに入れる方法ファイル。
少しの忍耐とこのプラグインのいくつかの経験を持つ人/これらの問題は私に次のステップを案内できますか?ご協力ありがとうございます。
このリソースは、アップロードされたファイルで追加のフォームデータを渡すのに役立ちます。
https://github.com/blueimp/jQuery-File-Upload/wiki/How-to-submit-additional-Form-Data
詳細な回答を書く時間がないので、申し訳ありません。
追加のフォームデータを渡すには、次のようなものを実行できます。
$('[name=files\\[\\]]').fileupload({
//...your initialization of the file uploader here
}).bind('fileuploadsubmit', function (e, data) {
data.formData = {
'package': $('[name=package\\[\\]]').val(),
'notes': $('[name=notes\\[\\]]').val()
};
});
PHP側では、送信された「パッケージ」およびノート」データの$ _POST配列を確認できます。
送信されるデータが配列データにならない場合(複数の値が送信されるチェックボックスなど)は、フォーム要素名に「[]」を使用しないでください。
また、追加のパラメーターを渡す必要があり、プログラムで追加のフォームデータを設定するために formDataオプション を使用できることがわかりました。
$('#fileupload').fileupload({
formData: {
param1: 'test'
,param2: "value2"
,param3: "yasseshaikh"
}
});
ソース: プログラムで追加のフォームデータを追加
Upload.php-探しているパラメーターを見つけるには、グローバル変数$ _REQUEST、$ _ GET、または$ _POSTをチェックしてみてください http://php.net/manual/en/reserved.variables.request .php
たとえば、upload.phpに 'package []'パラメータを送信する場合、$ _ REQUEST ['package []']を使用してupload.php内でそれにアクセスできます。
お役に立てれば。