、、、、、、

使用特殊的表单类型file,

主(上传)页面:

<form action="chuli.php" method="post" enctype="multipart/form-data">
 <input type="file" name="file" />
    <input type="submit" value="上传" />
、、、、、、、、、、、、、、、、、、、、、、、</form>

处理页面:

//var_dump($_FILES);

//1.判断是否出错
//2.控制上传的格式
//3.控制上传文件的大小
//4.控制文件名不能重复(如果重复不能上传)
//怎么让文件名不重复
 //1.文件名自动生成
 //2.使用文件夹的方式
 
//5.保存文件

if(!$_FILES["file"]["error"])
{
 if($_FILES["file"]["type"]=="image/jpeg" && $_FILES["file"]["size"]<=1024000)
 {
  $filename = "./file/".date("YmdHis").$_FILES["file"]["name"];
  $filename = iconv("UTF-8","gb2312",$filename);   //将文件名

if(!file_exists($filename))
  {
   //上传
   move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
  }
  else
  {
   echo "该文件已存在";
  }
 }
 else
 {
  echo "文件格式或大小不对";
 }
}
else
{
 echo $_FILES["file"]["error"];
}

上传预览:

主页面:

<body>
<form id="sc" action="shangchuan.php" target="hidden_frame" method="post" enctype="multipart/form-data">
<div id="yl" style="margin-left:0px; width:144px; height:170px; background-size:144px 170px; background-image:url(../chexiangqing/images/22.jpg)">
<input type="file" name="file" style="width:144px; height:170px; float:left; opacity:0;" width="146" onchange="document.getElementById('sc').submit()"/> </div>
<input type="button" value="保存"/>
</form>
<iframe style="display:none;" name="hidden_frame" id="hidden_frame">
</iframe> </body>
<script type="text/javascript">
//回调函数
function showimg(aa)
{
var l = document.getElementById("yl");
l.style.backgroundImage = "url("+aa+")";
}
</script>

处理页面:

<?php
//上传文件限制
if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/png"))&& ($_FILES["file"]["size"] < 10000000))
{
//文件上传是否出错
if ($_FILES["file"]["error"] > 0)
{
echo "上传出错: " . $_FILES["file"]["error"] . "<br />";
}
else
{ //判断文件是否已存在
$filename = "images/".$_FILES["file"]["name"];
$filename = iconv("UTF-8","gb2312",$filename); if (file_exists($filename))
{
echo "<script language='javascript'>alert('文件已经存在!')</script>"; }
else
{
//移动图片至保存路径,解决中文乱码问题
move_uploaded_file($_FILES["file"]["tmp_name"],$filename); echo "<script language='javascript'>parent.showimg('".$filename."')</script>";
}
}
}
else
{
echo "上传失败";
} ?>

PHP WAMP 文件上传 及 简单的上传预览的更多相关文章

  1. 文件批量上传-统一附件管理器-在线预览文件(有互联网和没有两种)--SNF快速开发平台3.0

    实际上在SNF里使用附件管理是非常简单的事情,一句代码就可以搞定.但我也要在这里记录一下统一附件管理器能满足的需求. 通用的附件管理,不要重复开发,调用尽量简洁. 批量文件上传,并对每个文件大小限制, ...

  2. 图片上传,支持同步/异步、预览(MVC、uploadify异步提交、js预览、ajaxSubmit异步提交)兼容大部分浏览器,含代码

    图片上传代码,支持同步/异步和图片的预览 主要用了两种方式,可兼容大部分浏览器. 第一种使用uploadify异步上传,上传后返回图片路径显示到页面. 每二种使用ajaxSubmit异步上传,为兼容I ...

  3. Linux系统下使用ckfinder上传中文名的图片无法正常预览

    问题描述:使用ckfinder上传带有中文名称的图片后在Windows本地可以正常预览,部署在Linux系统后,带有中文名的图片不能正常显示 解决办法:找到Tomcat的根目录 --> conf ...

  4. APP图标设计小技巧:在iOS上快速获得APP图标的真实预览图

    严格来说,这并不是一篇关于前端开发的文章,因为涉及到的知识非常浅.这只是一个向设计狮们分享的小经验,只是其中用到了一些前端内容. 最近接了个私活,了解到一个初创公司正在高价悬赏Logo(主要用于APP ...

  5. Node.js + gulp 合并静态页模版,文件更新自动热重载。浏览器可预览

    github地址:https://github.com/Liaozhenting/template 使用的是ejs的语法.其实你用什么文件后缀都可以,都是按ejs来解析. 模板文件放在componen ...

  6. C# MVC Ajax上传多个图片,可预览,可重复上传等

    //上传文件 function UploadFile(el) { var dataValue = $(el).attr("data-id"); var ele = dataValu ...

  7. 简单实现JS上传图片预览功能

    HTML代码 <div class="upload"> <input type="button" class="btn" ...

  8. iOS- XKZoomingView 简单的图片缩放预览,支持横屏、长图【手势:单击、双击、放大缩小】

    XKZoomingView.h #import <UIKit/UIKit.h> @interface XKZoomingView : UIScrollView /** 本地图片 */ @p ...

  9. jquery实现简单鼠标经过图片预览效果

    html结构:<div class="prebtn"><img src=""/></div> css代码:#preview{ ...

随机推荐

  1. 关于oracle中数据类型的选择

    由于是初学,犯了如下错误: 生成表的主键id时,用当前时间的毫秒值.而在oracle中定义主键id时,用的数据类型是char(32).在mybatis中通过id取数据怎么也取不出来.想了好几天,本来以 ...

  2. switch与ifelse的效率问题

    switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的.从而,swi ...

  3. insertion sort(插入排序)

    #include<stdio.h> #include<time.h> int insertion_sort() { ; int a[max],i,j; srand((unsig ...

  4. 【2016-11-13】【坚持学习】【Day25】【Oracle 查询某一字段最大值】

    partition 分组order by 以哪一个字段排序 select n.* ,row_number()over(partition by n.type order by n.createtime ...

  5. Linux提权(1)-基础版~

    利用Linux内核漏洞提权 VulnOS version 2是VulHub上的一个Linux提权练习,当打开虚拟机后,可以看到 获取到低权限SHELL后我们通常做下面几件事 1.检测操作系统的发行版本 ...

  6. android第一行代码-6.自定义控件的实现

    0.假设一个应用中标题栏控件都是共用的,如果每个activity都需要设置button,绑定方法,那代码就会很臃肿.那我们可以自定义控件,然后继承这个控件就行了. 自定义控件为TitleLayout, ...

  7. vuejs mvvm图解

  8. maven中央仓库访问速度太慢的解决办法

    方法一:修改settings.xml eclipse中集成的maven的settings.xml文件,找了半年也没找到,我们放弃eclipse中的maven,下一个最新的maven,并在eclipse ...

  9. Spring源码分析——资源访问利器Resource之接口和抽象类分析

    从今天开始,一步步走上源码分析的路.刚开始肯定要从简单着手.我们先从Java发展史上最强大的框架——Spring...旗下的资源抽象接口Resource开始吧. 我看了好多分析Spring源码的,每每 ...

  10. 【原】KMeans与深度学习模型结合提高聚类效果

    这几天在做用户画像,特征是用户的消费商品的消费金额,原始数据(部分)是这样的: id goods_name goods_amount 男士手袋 1882.0 淑女装 2491.0 女士手袋 345.0 ...