1 つのページに複数の入力フィールドがあります。各入力フィールドには、テキスト入力フィールドとファイル アップロード フィールドがあります。現在のワークフローは次のようになります。
- アップロード直後に、ファイルの名前がデータベースに保存されます。(uploadify.php)
- アップロード フィールドに対応する必要があるデータベースから ID を取得します。(uploadify.php - セッションで書き込みますか?)
ここで、どのファイル アップロードがどのテキスト入力に対応しているかを追跡する方法が必要です。ファイル アップロード フィールドの ID があれば、対応するテキスト入力との関係を作成し、データベースから返された ID と一緒に、テキストを対応するアップロードに保存できます。
hereで説明されている方法を試しましたが、 Uploadify という入力フィールドのデータを提供できないオブジェクトonSelect
しかありません。file
Uploadify の実際のバージョンでは、これを提供する別の機能は見つかりませんでした。
現在、これを使用することを考えて$_SESSION
いますが、これを行う方法がわかりません。
クライアント側:
$('.iconupload').uploadify({
'swf' : '<?php echo SUBFOLDER; ?>/swf/uploadify.swf',
'uploader' : '<?php echo SUBFOLDER; ?>/includes/uploadify.php',
'formData' : {'folder' : '<?php echo IMG_UPLOAD_ICONS; ?>', 'id' : '<?php echo $_SESSION['ID']; ?>', 'type' : 'icon'},
'multi' : false,
'auto' : true,
'removeCompleted': false,
'queueSizeLimit' : 1,
'simUploadLimit' : 1,
'fileTypeExts' : '*.jpg; *.jpeg; *.png; *.gif',
'fileTypeDesc' : 'JPG Image Files (*.jpg); JPEG Image Files (*.jpeg); PNG Image Files (*.png), GIF (*.gif)',
'onUploadError' : function(file, errorCode, errorMsg, errorString) {
alert('The file ' + file.name + ' could not be uploaded: ' + errorString);
},
'onUploadSuccess': function(file, data, response) {
//alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data);
},
'onSelect' : function(file) {
//var elem_id = $(event.target).attr("id"); //here you get the id of the object.
//alert (elem_id);
console.debug(file);
//$("#"+elem_id).uploadifySettings('formData',{'formID':elem_id})
}
});
サーバー側:
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];
$res= mkdir(str_replace('//','/',$targetPath), 0750, true);
$res2=move_uploaded_file($tempFile,$targetFile);
$relative_url = str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
echo $relative_url;
if($_REQUEST['type'] == 'icon' && !empty($_REQUEST['id'])){
$iconid = $db->addIcon($_REQUEST['id'], $relative_url);
$icons = array();
if(isset($_SESSION['icons'])){
$icons = $_SESSION['icons'];
}
$icons[$_REQUEST['formID']]= $iconid;
$_SESSION['icons'] = $icons;
}
}
おそらく、Javascript マジックを使用して返すことができるオブジェクトを使用onUploadSuccess
することができます。しかし、どの入力フィールドから Uploadify が呼び出されたのかはまだわかりません...data
uploadify.php