ajax post上传后莫名其妙的首次上传出错,再次上传正确

ajax post上传后莫名其妙的首次上传出错,再次上传正确

最近做一个项目,局域网本机(192.168.1.168),及手机测试局域网ajax post上传正确。
前端

$.ajax({
             url: "userpost_ajax.php",
             type: 'post',    
             data: formData,  
             dataType : 'json',  //传递数据的格式
             async:false, //这是重要的一步,防止重复提交的                   
             cache: false,  //设置为false,上传文件不需要缓存。
             contentType: false,//设置为false,因为是构造的FormData对象,所以这里设置为false。
             processData: false,//设置为false,因为data值是FormData对象,不需要对数据做处理。
             success: function (redata) {
				rtime=redata.retime;
				rtoken=redata.retoken;
                   if(redata.success==true){
				  		$.alert("上传成功", function() { //$.alert为jquery-weui插件
						  $("#imgshow_"+val).attr("src",redata.file_name);
						});
					}else if(redata.success==false){
						$.alert("上传出现错误,错误提示:"+redata.message);
				    }
             },
             error: function(XMLHttpRequest, textStatus, errorThrown) {
                        Alert(XMLHttpRequest);alert(textStatus);alert(errorThrown);
             }
         });

结果部署到云服务器上出错,输出错误为 200 4 parsererror,查看返回数据符合JSON格式。弄不明白哪里的问题,后来仔细检查后台PHP代码

$picstr=$GLOBALS['conn']->………………//取出PIC图地址字符串
	$picarr = explode(',',$picstr);
	   if(!empty($picarr[$pickey])){
		$file_name_old=$picarr[$pickey];//若索引存在文件名,则赋值
	}
if(file_exists(SYSROOT.$file_name_old)) //成功写入后清理旧文件已包含路径
	{
		unlink(SYSROOT.$file_name_old);
	}

因为是首次上传出错,以后在上传正确,考虑的是数据库中首次没有原文件的缘故。于是先是加@unlink(SYSROOT. f i l e n a m e o l d ) ; 屏 蔽 报 错 , a j a x 问 题 解 决 。 但 再 仔 细 检 查 了 一 遍 。 原 来 根 本 原 因 是 粗 心 大 意 , file_name_old); 屏蔽报错,ajax问题解决。但再仔细检查了一遍。原来根本原因是粗心大意, filenameold);ajaxfile_name_old未作初始化,如果数据库没此地址,则$file_name_old变量不存在。PHP程序可以继续运行下去,但AJAX返回的有错误空头。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值