我正在使用jQuery插件,“uploadify”&我要做的是在上传开始后隐藏上传按钮,但是如果他们在选择文件之前点击它仍然会隐藏它。
这是我的提交功能:
$("#add_list").submit(function(){
// Set new list id
$("#filename").uploadifySettings('scriptData', { 'new_list_id': $('#new_list_id').val() });
// Hide upload button
$("#upload_button").hide();
// Trigger upload
$("#filename").uploadifyUpload();
});
有没有办法可以获得文件名字段的值?我试过了..
$("#filename").val()
..但是没有用。即使选择文件也始终为空白。
答案 0 :(得分:1)
好的.....所以我决定只使用'onSelect'事件更新隐藏的表单字段值;这样,当他们选择一个文件时,我可以将值更新为状态,他们选择了一个文件;然后在触发上传之前检查此值。如果上传存在问题或用户删除了文件,则只要触发'onCancel'事件,我就会将值更新为空白值。
以下是相关代码,如果它可以帮助其他人..
'onComplete': function(event, ID, fileObj, response, data) {
if (response != 'OK') {
// Cancel upload
$("#filename").uploadifyCancel(ID);
// Show upload button
$("#upload_button").show();
// Output error message
alert(response);
} else {
// Submit secondary form on page
document.finalize.submit();
}
},
'onError': function(event,ID,fileObj,errorObj) {
// Cancel upload
$("#filename").uploadifyCancel(ID);
// Format error msg
var error_msg = errorObj.type + '. Error: ' + errorObj.info + '. File: ' + fileObj.name;
alert(error_msg);
},
'onSelect': function(event,ID,fileObj) {
// Update selected so we know they have selected a file
$("#selected").val('yes');
},
'onCancel': function(event,ID,fileObj,data) {
// Update selected so we know they have no file selected
$("#selected").val('');
}
});
$("#add_list").submit(function(){
var selected = $("#selected").val();
if (selected == 'yes') {
// Set new list id
$("#filename").uploadifySettings('scriptData', { 'new_list_id': $('#new_list_id').val() });
// Hide upload button
$("#upload_button").hide();
// Trigger upload
$("#filename").uploadifyUpload();
} else {
alert('Please select a file to upload.');
}
});
答案 1 :(得分:0)
跟着这个。
function submitForm()
{
var html = document.getElementById('file_uploadQueue').innerHTML;
if(html.length > 0)
{
$('#file_upload').uploadifyUpload($('.uploadifyQueueItem').last().attr('id').replace('file_upload',''));
}
else
{
alert('choose file to upload');
// or you can submit the form. If uplodify is optional for u
}
}
答案 2 :(得分:0)
你也可以通过AJAX调用这个php函数来查看是否上传了任何内容。 (我在上传后将上传的文件移动到一组文件夹,所以这对我很有用;))
/*
* returns the number of files in the tmp folder
* @return number
*/
public function countTmpFiles()
{
$source = "path/to/your/foler"; //here are the uploaded files
$files = scandir( $source);
$result = 0;
foreach( $files as $file )
{
if ( in_array( $file, array( ".",".." ) ) )
{
continue;
}
$result++;
}
return $result;
}