推广

php手把手教你做网站(十一)Jquery。

iseeyu3年前 (2023-12-25)推广118

有3种实现方式

  1. 和表单其他数据一起提交,然后接收的页面上传图片;如果表单字段多,会导致提交很慢,可能会导致程序超出执行时间,所以不提倡;
  2. 通过iframe链接上传的文件,然后向父窗口input赋值;
  3. 通过ajax上传图片,向文本框赋值图片地址;

2,3差不多,使用ajax页面更加整齐美观一些,这里介绍方式3也就是ajax上传图片。

要达到的效果:

  1. 向input赋值,
  2. 展示刚才传的图片。

图1 图片上传效果图

html代码:

<input type='file' accept="image/*" id='x_pic' class='layui-inpu' >
<button type='button' class='layui-btn submis' >上传</button>
<div><img class='x_pic'></div>
<div><input class='layui-inpu picval' /></div>

js代码:

$(document).ready(function() {
$(".submis").click(function() {
var formData = new FormData();
var picinfo= $("#x_pic").get(0).files[0];//取第一个文件
formData.append("photo",);
formData.append("projectid", 参数); //如果想传递一些其他参数这样添加
if (!picinfo) {
alert('请选择要上传的图片!');
return false;
}
$.ajax({
//ajax使用前边多级分类有介绍,这里就不再重复
$(".x_pic").attr("src", result.msg);
$(".picval").val(result.msg);
})

扩展:上传图片以后选择图片的文本框要清空

var objFile = document.getElementById( "x_pic";

objFile.outerHTML = objFile.outerHTML.replace(/(value=\\".+\\"/i, "$1\\"";

php后台接收文件

1、$_FILE 获取,和正常上传一样 ,参数包括name,tmp_name,size,

foreach($_FILES as $k=>$v){

$v['name'] 图片原名

$v['tmp_name'] 缓存的名称,路径

$v['size'] 大小

//这里可以进行大小格式的判断

}

2、使用move_uploaded_file($v ["tmp_name"], ROOT_PATH.$images_dir.$newname);将图片移动到指定的文件夹,由于习惯了以前版本的常量ROOT_PATH,在入口文件又定义了该常量。

3、上传图片的安全性检查:

以下方法来源网络,在此表示感谢!

针对要上传的tmp_name进行验证。

$resource = fopen($tmp_name, 'rb');
fseek($resource, "0");
$fileSize = filesize($tmp_name);
if ($fileSize > 512) { // 若文件大于521B文件取头和尾
$hexCode = bin2hex(fread($resource, "512"));
fseek($resource,$fileSize-512);
$hexCode .= bin2hex(fread($resource, 512));
}else{ // 取全部
$hexCode = bin2hex(fread($resource, $fileSize));
}
if (preg_match("/(3c25.*?28.*?29.*?253e)|(3c3f.*?28.*?29.*?3f3e)|(3C534352495054)|(2F5343524950543E)|(3C736372697074)|(2F7363726970743E)/is", $hexCode)){
$status = 1;
}else{
$status = 0;
}

匹配该图片文件(转成16进制)头尾,是否有危险字符,JavaScript php等等,如果匹配到说明图片是危险的,我们可以禁止上传。危险$status = 1;反之$status = 0;

4、如果要获取图片的宽度、高度,需要上传以后使用getimagesize()获取,图片地址需要是物理路径;

getimagesize(ROOT_PATH.$images_dir.$newname);

6、浏览图片自动上传

$(".submis".click(function() 这是上传按钮的点击触发事件,需要换成change

$("#x_pic").change(function() {
  x_pic 是上传input type=file 的id

思路扩展:上传图片之前我们是否应该判断一下是否上传过该图片,避免重复上传,占用服务器空间?我是把上传的图片信息保存到表,然后每次上传之前判断了图片name和size能取到就是已经存在。

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/112077.html

相关文章

最新抖音快手搬运方法

最新抖音快手搬运方法

抖音上有一些账号搬运别人的视频,几乎一模一样,也没判搬运,他们是怎么做到的??给大家分享下一个最新的去重搬运的神器:一款非常神奇的搬运软件APP,上各大平台上复制链接,在这个平台上去水印,然后一件转换成视频,无脑试搬运玩法,很多人都不知道居然还有这种搬运专用的软件,直接给大...

网站优化是为什么?什么样的网站更值得用户关注。

网站优化是为什么?什么样的网站更值得用户关注。

一个好的搜索引擎排名是许多网站建设和网站制作者追求的梦想。因为现在80%以上的网民在找网站,他们不会通过地址栏输入网址,而是更多地使用百度、谷歌等搜索引擎。这样,我们就不必记住枯燥乏味的英文字母,也可以在同一个关键词下检索到更丰富的信息。经过十多年互联网的快速发展,搜索引擎已经悄然成为网民进入互联...

APP拉新推广平台渠道有哪些?平台哪里找?

APP拉新推广平台渠道有哪些?平台哪里找?

从事APP拉新行业,最关键的无外乎两点:推广员去哪里寻找拉新推广/项目方去哪里找拉新推广团队、运营商有哪些拉新推广。掌握了这两点,推广员不愁赚不到钱,运营商也不用愁APP的用户量了。 想要知道APP拉新推广平台渠道有哪些,平台哪里找这两个问...

淘宝店饰品退款率高吗,怎么看个人淘宝退款率(店铺退货率高了有什么影响)

淘宝店饰品退款率高吗,怎么看个人淘宝退款率(店铺退货率高了有什么影响)

影响店铺权重的维度主要有店铺售后、店铺层级(最近30天成交金额),先去检查你店铺售后问题及店铺层级问题来确定店铺权重高低。...

什么是百度快照?百度快照怎么使用?

什么是百度快照?百度快照怎么使用?

不管想通过哪个网站进行,人流量都是企业之间争夺的源头。如果企业想要通过网站营销实现更好的发展,不仅仅要争夺流量同时还要注重优化用户的体验。然而,移动互联网的迅速发展过程中,会存在很多计划之外的事情,甚至有时候计划赶不上变化。因此,企业在网站营销的过程中,除了需要做好较前的排...

如何利用站长工具做数据分析做决策?

如何利用站长工具做数据分析做决策?

本文将展示通过网站分析以及站长工具中的数据来辅助解决一些我们工作中常见的问题,比如: 如何衡量SEO效果? 何时舍弃IE*? 怎么定banner的高度? 响应式的breakpoint有哪些? 何时优化google? 改版是否成功? 广告的尺寸是多少?...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片