ユーザーが Uploadify を使用してファイルをアップロードするフォルダーを選択する方法に取り組んでいます。私はたくさんの JavaScript コードを持っていますが、最後のビットを除いてすべて動作します。必要に応じてすべてを表示できますが、それは問題ではないと固く信じています.
これが私のコードです:
$("#file_upload").uploadify({
'buttonText' : 'Upload New Files',
'height' : 30,
'swf' : 'uploadify/uploadify.swf',
'uploader' : 'uploadify/uploadify.php',
'width' : 120,
'folder' : $('#folder').val(),
'auto' : true,
'multi' : true,
'onUploadComplete' : function(file) {
location.reload();
}
});
$("#folder").change(function () {
var path = "/" + $(this).val();
$('#file_upload').uploadifySettings("scriptData", {'folder': path });
alert(path);
});
このコードは document.ready() にラップされています。
このコードが行うことは
- アップロード機能を初期化する
- ユーザーが #folder (ドロップダウン) の値を変更すると、uploadify 関数の値 "folder" が変更されます。
セレクトボックスをクリックしても何も起こりません。行をコメントアウトすると:
$('#file_upload').uploadifySettings("scriptData", {'folder': path });
アラートが表示されます。行をそのままにしておくと、何もしません。
Firebug に相談したところ、次のエラーが表示されていることがわかりました。
TypeError: $(...).uploadifySettings Not A Function
論理的には、uploadify がページにリンクされていないことを意味します。しかし、ファイルをアップロードするとアップロードされるので、そこにあり、機能します。
ここに私のHTML/PHPがあります:
<h3>Your Uploaded Files</h3>
<input type="file" name="file_upload" id="file_upload">
<span style="margin: 5px 10px 0 0; float: left;">to</span>
<select id="folder">
<?php
echo '<option value="'.$directory.'">Downloads</option>';
$friendlyDir;
foreach(glob('downloads/*', GLOB_ONLYDIR) as $dir) {
$friendlyDir = str_replace("downloads/","",$dir);
echo '<option value="'.$dir.'">'.ucfirst(strtolower($friendlyDir)).'</option>';
}
?>
</select>
<div id="file_viewer"></div>
HTML/PHP は正常に動作しますが、トリガーなどを確認できるように含めることにしました。
誰かがこれを調べることができれば、私は感謝します. クロスブラウザー テストは行っていませんが、使用しているブラウザーは Firefox 19.0.2 です。
ありがとうございました。