文件上传-------头像上传预览

这次来讲怎么来用代码完成头像更换

在上篇博客中也说了图片上传,但选择文件的之后,在网页上并没有显示这张图片,如果是要做头像的话,最好有头像预览

就像平时我们换QQ头像那样,一点图片就会出来文件预览,然后再选择一张图片,点击,页面就会换成你刚刚点击的那张图片

来看一下做法,先说第一个页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
#yl{ width:200px; height:300px; background-image:url(file/20170112113928n2.png); background-size:200px 300px;}     这里是选背景图的路径,到时候引用的话别忘了改
#file{ width:200px; height:300px; float:left; opacity:0;}    <!--使按钮的大小和上面的背景图一样大,把按钮设置为透明-->
</style>

</head>

<body>

<form id="sc" action="yulan2.php" method="post" enctype="multipart/form-data" target="shangchuan">

    <input type="hidden" name="tp" value="" id="tp" />

    <div id="yl">
        <input type="file" name="file" id="file" onchange="document.getElementById(‘sc‘).submit()" />  <!-- form表单,在iframe里面提交,target属性 浏览器的打开方式,处理页面是到iframe运行,后面那句话是选中后,用submit方法提交-->
    </div>

</form>

<iframe style="display:none" name="shangchuan" id="shangchuan">  <!--隐藏掉-->
</iframe>

</body>

<script type="text/javascript">

//回调函数,调用该方法传一个文件路径,该变背景图
function showimg(url)
{
    var div = document.getElementById("yl");
    div.style.backgroundImage = "url("+url+")";

    document.getElementById("tp").value = url;
}

</script>

</html>

运行后

点击图片

就会弹出来文件上传的窗口

再来看第二个页面

<?php

if($_FILES["file"]["error"])
{
    echo $_FILES["file"]["error"];
}
else
{
    if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png")&& $_FILES["file"]["size"]<1024000)
    {
        $fname = "./img/".date("YmdHis").$_FILES["file"]["name"];      //在同一路径下再建一个img 的文件,到时候上传的文件就保存在这个文件夹下

        $filename = iconv("UTF-8","gb2312",$fname);

        if(file_exists($filename))
        {
            echo "<script>alert(‘该文件已存在!‘);</script>";
        }
        else
        {
            move_uploaded_file($_FILES["file"]["tmp_name"],$filename);

            unlink($_POST["tp"]);    //删除原来的文件

            echo "<script>parent.showimg(‘{$fname}‘);</script>";
        }

    }
}

可以来看一下运行的效果

点击任意一张图片

头像成功更换

再来看一下img ,文件夹

有这张图片,再把头像更换一次

更换成这个,再来看一下img 文件夹

原来的文件被删除,只保存当下的文件,这样可以避免占用多的内存

时间: 2024-08-07 12:31:40

文件上传-------头像上传预览的相关文章

统一通用文件上传、下载、预览、编辑组件设计

一直以来,无数个项目有这样的需求,然而每个项目做起来都自己开发一套,于是想自己设计实现这样一个组件,实现文件的统一存储. 上传.下载.预览.编辑功能,接口统一,对开发人员完全透明.思路如下: 1.采用统一数据库存储文件元数据信息,文件与业务数据关联信息 2.集成uploadify.Huploadify,html5和flash双内核文件上传 3.集成weboffice,word文档在线编辑 4.集成flexpaper.pdfjs, html5和flash双内核word文档在线查看 5.集成flow

html5上传本地图片,在线预览及裁剪(filereader,canvas)

1 我们常常需要上传头像,点击上传按钮时候需要预览一下,使用filereader方法无需和后台交互,代码如下: //本地图片在上传之前的预览效果 //图片上传预览 function previewImage(file) { if (file.files && file.files[0]) { var img = document.getElementById('imghead'); var reader = new FileReader(); //读取file完成之后加载 reader.o

dropzonejs中文翻译手册 DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.

http://wxb.github.io/dropzonejs.com.zh-CN/dropzonezh-CN/ 由于项目需要,完成一个web的图片拖拽上传,也就顺便学习和了解了一下前端的比较新的技术:HTML5的api,作为一名前端的菜鸟,没什么可说的,直接分享自己学习的资料: 关于HTML5 的这些新的特性大家可以到Mozilla的开发者社区MDN https://developer.mozilla.org/zh-CN/ 上查HTML5的资料 还有就是发掘到的比较牛逼的一篇博客:http:/

上传APP添加视频预览--精简点名

上传APP添加视频预览--精简点名 在为精简点名APP制作视频预览时的坑: 1.视频预览不能太长,也不能太短15-30s就好:我录制的是18s 2.视频的帧数不能太大,也就是说你在录制视频的时候,要慢点录制: 3.上传时可能会说文件的无法载入,请再次上传,这个多数是你网络不好造成的,找个网络好的时候,重新上传: 4.视频的尺寸是有限制的,需要不同设备的尺寸:这里有个技巧,想要不同的尺寸,那么使用不同的设备进行录制 5.采用什么样的软件,其实使用QuickTime+iphone就可以搞定,也不需要

html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器

原文:html5 图片上传,支持图片预览.压缩.及进度显示,兼容IE6+及标准浏览器 以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一般的上传没有问题,不过如果是上传图片,且需要预览的话,就力有不逮了,趁着闲暇时间,给上传组件添加了单独的图片上传UI,支持图片预览和缩放(通过调整图片的大小以实现图片压缩). 上传组件特点 轻量级,不依赖任何JS库,核心代码(Q.Uploader.js)仅约700行,min版本加起来不到12KB 纯

springmvc 文件下传、上载、预览。以二进制形式存放到数据库(转载)

springmvc 文件上传.下载.预览.以二进制形式存放到数据库.数据库中的关于传入附件的字段我写了2个:一个存放内容accessory,一个存放文件的后缀filetype 上传:首先需要2个必须的jar:commons.io-1.4.0.jarcommons.fileupload-1.2.0.jar XXX-servlet.xml中写入上传拦截:<bean id="multipartResolver" class="org.springframework.web.m

ssh文件上传、下载、预览

1.预览:openoffice,微软自带,jacob(linux不适用且需配置动态链接库),poi(office格式多样化处理较麻烦),永中office(qq.163等使用此种方法,但收费). openoffice:https://blog.csdn.net/ITBigGod/article/details/80300177 jacob:https://www.cnblogs.com/itred/p/4345506.html 2:上传下载: https://www.cnblogs.com/xia

JavaScript图片上传前的图片预览功能

JS代码: 1 //js本地图片预览,兼容ie[6-9].火狐.Chrome17+.Opera11+.Maxthon3 2 function PreviewImage(fileObj, imgPreviewId, divPreviewId) { 3 var allowExtention = ".jpg,.bmp,.gif,.png"; //允许上传文件的后缀名document.getElementById("hfAllowPicSuffix").value; 4 v

webform 文件上传(头像上传) 隐藏FileUpload

1 <div> 2 <%-- 核心思想:把FileUpload设为relative,top:-200px;opacity:0 --%> 3 <div id="localImag" style="width: 300px; height: 200px"> 4 <img id="preview" alt="预览图片" src="images/qiye.png" widt