form里面文件上传并预览

其实form里面是不能嵌套form的,如果form里面有图片上传和其他input框,我们希望上传图片并预览图片,然后将其他input框填写完毕,再提交整个表单的话,有两种方式!

方式一:点击上传按钮的链接弹出上传页面,上传文件,上传完毕再返回表单页面;这种比较简单,其实就是表单页面的上传按钮仅仅是一个链接,仅用于打开上传文件的弹出页面;

方式二:就是表单里面有<input type="file" name="picture"/>,点击上传按钮后,会在上传按钮旁边有图片预览,这种其实图片也没有上传到服务器,而是将图片做了个本地预览,当填写完其他input框内容,提交后才开始上传的!

其完整代码如下:

<script type="text/javascript" src="jquery-3.2.1.js"></script>
<script type="text/javascript">
     function showImg(obj){
         var objUrl = getObjectURL(obj.files[0]);
         if (objUrl) {
              $(obj).before(‘<img src="‘+ objUrl +‘"  width="100px;">&nbsp;&nbsp;‘);
          }
      }
     function getObjectURL(file) {
         var url = null ;
         if (window.createObjectURL!=undefined) {
              url = window.createObjectURL(file) ;
         } else if (window.URL!=undefined) {
              url = window.URL.createObjectURL(file) ;
         } else if (window.webkitURL!=undefined) {
              url = window.webkitURL.createObjectURL(file) ;
         }
         return url ;
     }
</script>
//文件上传表单
<form method="post" action="index.php" enctype="multipart/form-data">
     <input name="picture" id="picture" style="position:absolute;clip:rect(0 0 0 0);" onchange="showImg(this);" type="file">
     <label style="cursor:pointer;width:80px;height:30px;background-color:#00e3e3;text-align:center;line-height:30px;color:#FFFFFF;box-shadow: 2px 2px 2px #888888;" for="picture">上传LOGO</label>
     <input name="sub" type="submit" value="提交"/>
</form>
//文件上传php代码
<?php
$file = @$_FILES[‘picture‘];//得到传输的数据
//得到文件名称
$name = $file[‘name‘];
$type = strtolower(substr($name,strrpos($name,‘.‘)+1)); //得到文件类型,并且都转化成小写
$allow_type = array(‘jpg‘,‘jpeg‘,‘gif‘,‘png‘); //定义允许上传的类型
//判断文件类型是否被允许上传
if(!in_array($type, $allow_type)){
    //如果不被允许,则直接停止程序运行
    return ;
}
//判断是否是通过HTTP POST上传的
if(!is_uploaded_file($file[‘tmp_name‘])){
    //如果不是通过HTTP POST上传的
    return ;
}
$upload_path = "D:/now/"; //上传文件的存放路径
//开始移动文件到相应的文件夹
if(move_uploaded_file($file[‘tmp_name‘],$upload_path.$file[‘name‘])){
    return $upload_path.$file[‘name‘];
}else{
    echo "Failed!";
}
?>
时间: 2024-10-15 23:28:18

form里面文件上传并预览的相关文章

form表单系列中文件上传及预览

文件上传及预览 Form提交 Ajax 上传文件 时机: 如果发送的[文件]:->iframe, jQurey(),伪Ajax 预览 import os img_path = os.path.join('static/img', fafafa.name) with open(img.path, 'wb') as f: for item in fafafa.chunks(): f.write(item) function iframeSubmit(){ $('#ifm1').load(functi

【转】文件上传前预览

网上找到的一份文件上传前预览的代码,转自JavaScript 图片的上传前预览(兼容所有浏览器) <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <style type="text/css"> #preview, .img, img { w

js的FileReader实现图片文件上传、预览

js的FileReader实现图片文件上传.预览 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件.使用Data URL的好处是,您不需要额外再发出一个HTTP 请求到服务器端取得额外的资料:而缺点便是,网页的大小可能会变大.它适合应用在内嵌小图片,不建议将大图像文件编码成Data URL来使用.您的图像文件不能够超过浏览器限定的大小,否则无法读取图像文件.1

servlet实现文件上传,预览,下载和删除

CreateTime--2017年9月4日09:24:59 Author:Marydon 一.准备工作: 1.1 文件上传插件:uploadify: 1.2 文件上传所需jar包:commons-fileupload-1.3.1.jar和commons-io-2.2.jar 1.3 将数据转成JSON对象需要jar包:commons-beanutils-1.8.3.jar.commons-collections-3.2.1.jar.commons-lang-2.6.jar.commons-log

结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程

1.bootstrap-fileinpu的简单介绍 在前面的随笔,我介绍了Bootstrap-table表格插件的具体项目应用过程,本篇随笔介绍另外一个Bootstrap FieInput插件的使用,整合两者可以实现我们常规的Web数据导入操作,导入数据操作过程包括有上传文件,预览数据,选择并提交记录等一系列操作. 关于这个插件,我在早期随笔<Bootstrap文件上传插件File Input的使用>也做了一次介绍,这是一个增强的 HTML5 文件输入控件,是一个 Bootstrap 3.x

支持多文件上传,预览,拖拽,基于bootstra的上传插件fileinput 的ajax异步上传

首先需要导入一些js和css文件 <link href="__PUBLIC__/CSS/bootstrap.css" rel="stylesheet"> <link type="text/css" rel="stylesheet" href="__PUBLIC__/CSS/fileinput.css" /> <script type="text/javascript&

web端文件上传,预览,下载,删除

//HTML部分 <div class="item attachment attachmentNew"> <span class="name">附件</span> <span class="triggerUpLoad btnSpan" onclick="triggerUpLoadList(this)" v-show="operationType<2">&

JQ图片文件上传之前预览功能

1.先准备一个div onchange触发事件 <input  type="file" onchange="preview(this)" ></span> <div id="preview"></div> 2.写JS代码 //上传图片之前预览图片function preview(file){ if (file.files && file.files[0]){ var reader =

实现图片文件上传之后预览

<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title></head> <body> <input type="file" id="file" name="" /> <div id=