0

複数の(大きな)ファイルを取得し、追加のユーザー入力パラメーターとともにファイル名を渡すために、細かいアップローダーを使用しています。これを行うには、各ファイルの横にテキスト入力ボックス (「allele_freq」と呼ばれる) を作成し、ファイル名と allele_freq パラメーターを CGI スクリプトに渡します。
次に何が起こるか (または次に何が起こるか) は、allele_freq パラメーターを使用してファイル内のデータを分析し、ユーザーが見られるようにいくつかの画像がページに返されることです。
ユーザーが新しい allele_freq でデータを再分析したい場合、私がしたいことは、新しい allele_freq と共にファイル名を渡すことだけです。つまり、ファイルを再度アップロードする必要はありません。以下に作業コードを貼り付け (各ファイルのユーザー入力とともに複数のファイルをアップロードします)、次に作業できないコード (「再送信」ボタンを生成しますが、何もしないように見えます) )、コード内のいくつかのコメント/黙想とともに。
私がこれをどのように行うかについての情報は、ありがたく受け取ります。私は罰金アップローダと Javascript の両方に非常に慣れていないので (おそらくおわかりのように)、私のコードを自由に批判してください (もちろん建設的に!)。
どうもありがとう、
グラハム

<link href="fineuploader/fineuploader-3.6.4.css" rel="stylesheet">
<script src="fineuploader/jquery-2.0.1.js"></script>
<script src="fineuploader/jquery.fineuploader-3.6.4.js"></script>

<div id="multiFineUploader"></div>
<div id="triggeredUpload" class="btn btn-primary" style="margin-top: 10px;">
    <i class="icon-upload icon-white"></i> Upload now
</div>
<script>
$('#multiFineUploader').fineUploader({
request: {
    endpoint: 'src/lib/upload.cgi'
},
autoUpload: false,
 text: {
uploadButton: '<i class="icon-plus icon-white"></i> Select Files'
}
})
.on('submitted', function(event, id, name) {
    var fileItemContainer = $(this).fineUploader('getItemByFileId', id);
    $(fileItemContainer)
    .append('<input type="text" name="allele_freq">');
})
.on('upload', function(event, id, name) {
    var fileItemContainer = $(this).fineUploader('getItemByFileId', id),
    enteredAlleleFreq = $(fileItemContainer).find('INPUT[name="allele_freq"]').val();
    $(this).fineUploader('setParams', {allele_freq: enteredAlleleFreq}, id);
});

$('#triggeredUpload').click(function() {
    $('#multiFineUploader').fineUploader('uploadStoredFiles');

});
</script>

上記のコードは正常に動作します

以下のコードはそうではありません

<div id="resubmitFreqs"></div>
<div id="retry" class="btn btn-success" style="margin-top: 10px;">
<i class="icon-upload icon-white"></i> Resubmit
</div>
<script>
$('#resubmitFreqs').fineUploader({
request: {
            //use a different script as shouldn't need to handle all the upload stuff
    endpoint: 'src/lib/resubmit.cgi'
}
)}
//get the information from the allele_freq box. Should it still be in scope?? If not, how do I get at it?
.on('upload', function(event, id, name) {
    var fileItemContainer = $(this).fineUploader('getItemByFileId', id),
    enteredAlleleFreq = $(fileItemContainer).find('INPUT[name="allele_freq"]').val();
    $(this).fineUploader('setParams', {allele_freq: enteredAlleleFreq}, id);
});
$('#retry').click(function() {
            //I presumably don't want to use 'uploadStoredFiles', but I'm not sure how to post my new parameters into the resubmit.cgi server-side script
    $('#resubmitFreqs').fineUploader('uploadStoredFiles');
 });
</script>
4

1 に答える 1