重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先 php 7以下 不支持异步方式(有个类库 可以勉强算是支持了异步 名字忘了)
创新互联建站是一家集网站建设,农安企业网站建设,农安品牌网站建设,网站定制,农安网站建设报价,网络营销,网络优化,农安网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
其次 php脚本 由于是逐行解析的,不常驻线程(当然可以设置为永久连接,不自动超时退出) 异步意义不大。
第三 我怀疑你是想问javascript的异步请求? 如何用php处理?
如果没问错的话 可以用其他方式来解决异步问题,就是同时发出多个web request请求 等多个请求成功之后将结果写入数据库(文件) 然后 有一个 一直在等待结果的php请求进程 一旦读取到了这个写入完毕的(数据库)文件结果 马上返回给浏览器
页面1.php里面写具体的执行语句
页面2.php直接使用curl调用页面1.php 并设置超时时间;根据你自己的需求写但是你不一定如果超时时间内 数据库没执行玩 那你可能就获取不到插入结果了
访问2.php应该就是你说的异步了
一般不向数据库插入图片 而是插入图片的src 通过src找到图片然后显示。
(更多异步问题)
?php
session_start();
//array数组中放图片的格式
$uptypes = array("image/jpg","image/jpeg","image/png","image/pjpeg","image/gif","image/bmp","image/x-png");
$files =$_FILES["uppic"];
if($files["size"]2097152){ //图片大小判断
echo "上传图片不能大于2M";
echo "meta http-equiv='REFRESH' CONTENT='1;URL=pic.php'";
exit;
}
$ftype =$files["type"];
if(!in_array($ftype,$uptypes)){ //图片格式判断
echo "上传的图片文件格式不正确";
echo "meta http-equiv='REFRESH' CONTENT='1;URL=pic.php'";
}
$fname = $files["tmp_name"]; //在服务器临时存储名称
$image_info = getimagesize($fname);
$name = $files["name"];
$str_name = pathinfo($name); //以数组的形式返回文件路劲的信息
$extname = strtolower($str_name["extension"]); //把字符串改为小写 extensiorn扩展名
$upload_dir = "upload/"; //upload文件夹
$file_name = date("YmdHis").rand(1000,9999).".".$extname;
$str_file = $upload_dir.$file_name; //文件目录
//存入数据库
$con=mysql_connect("localhost","root","");
if(!$con){
die(("数据库连接失败").mysql_error());
}
mysql_select_db("mywork",$con);
$sql="update user set picpath='$str_file' where user_name='$username'"; //将图片地址插入数据库mywork
mysql_query($sql,$con);
mysql_close($con);
if(!file_exists($upload_dir)){
mkdir($upload_dir); //创建目录 成功则返回true 失败则返回flase
}
if(!move_uploaded_file($files["tmp_name"],$str_file)){ //将上传的文件移动到新的目录 要移动文件 和文件新目录 成功则返回true
echo "图片上传失败";
echo "meta http-equiv='REFRESH' CONTENT='1;URL=插入失败后希望跳转的页面";
}
else{
//echo "img src=".$str_file."";
echo "图片上传成功";
echo "meta http-equiv='REFRESH' CONTENT='1;URL=插入成功希望挑战的页面";
}