服务器jquery文件夹,PHP服务器文件管理器开发小结(十):使用jQuery和iframe实现AJAX文件上传...

上一节讨论了文件下载,这一节继续讨论文件上传。

众所周知,前端上传文件比较简单的办法就是使用文件控件。然而,如果我们需要上传过程是AJAX的,亦即上传过程不刷新页面,仅反馈需要的信息,那就需要更加精巧的设计了。

首先是上传文件图片链接:

客户端需要将使用jQueryUI为用户提供上传文件的对话框,并且为用户提供上传结果的反馈。下面给出onUploadFile响应:function onUploadFile()

{

$('#dialogUploadFile').dialog({

height:'auto',

width:'auto',

position:{my:'center',at:'center',collision:'fit'},

modal:false,

draggable:true,

resizable:true,

title:"New File",

show:'slide',

hide:'explode',

buttons:{

OK: function() {

$("#frmUploadFile").submit();

setTimeout("$.post('query.php', {act:'refresh'}, function (data) {\

$('#spanDirTable').html(data);\

$( '#dialogUploadFile' ).dialog( 'close' );\

})",

1000);

},

Cancel: function() {

$( this ).dialog( "close" );

}

}

});

}

这里有一个变化,表单的提交直接使用submit(),而之后的AJAX请求使用了setTimeout进行延迟,这样是为了让服务器有足够的时间接收和处理上传的文件。

对应的“原材料”也有变化:

Select file to upload:

这里引用了一个作为表单的target。这样,我们可以将上传文件的处理结果反馈到对应的frame中,并弹出alert提示。

对应的PHP处理:case "upload":

echo "

";

$isDirContentView = false;

if (isset($_SESSION["currDir"]))

{

$strDirName = $_SESSION["currDir"];

}

else $strDirName = "/home";

$fileElemName = "newFile";

if (!isset($_FILES[$fileElemName]))

{

echo "alert('Upload File Unreceived!);";

break;

}

$newFile = $_FILES[$fileElemName];

$tmpFilePath = $newFile["tmp_name"];

$targetPath = $strDirName."/".$newFile["name"];

if ($tmpFilePath === false || file_exists($targetPath))

{

echo "alert('Unable to start upload!');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值