上传单个文件,此文以上传图片为例,上传效果如图所示

创建数据库upload_img,用于保存上传路径

CREATE TABLE `seminar_upload_img` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `img_name` varchar(255) DEFAULT NULL COMMENT '图片名称',
  `img_url` varchar(255) DEFAULT NULL COMMENT '图片路径',
  `create_time` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;
在公共配置文件Common/Conf.php中连接数据库,并配置地址

  1. return array(
  2. 'DB_TYPE'=>'mysql',
  3. 'DB_HOST'=>'127.0.0.1',
  4. 'DB_NAME'=>'seminar',
  5. 'DB_USER'=>'root',
  6. 'DB_PWD'=>'root',
  7. 'DB_PORT'=>3306,
  8. 'DB_PREFIX'=>'seminar_',
  9. 'DB_CHARSET'=>'utf8',
  10.  
  11. 'SHOW_PAGE_TRACE'=>true,
  12.  
  13. /*地址替换*/
  14. 'TMPL_PARSE_STRING'=>array(
  15. '__UPLOAD__'=>__ROOT__.'/Public/Uploads',
  16. ),
  17. );

视图文件Upload/index.html中

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <style type="text/css">
  7. #img{height:22px; border:#000 2px solid}
  8. #button{height:30px; width:100px;}
  9. </style>
  10. </head>
  11. <body>
  12. <div><notemply name="data">
  13. <img src="__UPLOAD__/{$data['img_url']}" width="200" height="100"/>
  14. </notemply></div>
  15. <div class="result" >上传允许文件类型:'jpg', 'gif', 'png', 'jpeg'图像文件后</div><br>
  16. <form action="{:U('upload/Upload')}" method="post" enctype="multipart/form-data">
  17. <input type="file" name="image"/>
  18. <input type="submit" value="上传" id="button">
  19. </form>
  20. </body>
  21. </html>

控制器UploadController.class.php中实现上传文件

  1. namespace Home\Controller;
  2. use Think\Controller;
  3. class UploadController extends Controller {
  4. public function index() {
  5. $img=M('upload_img');
  6. $sel=$img->order('create_time desc')->find();
  7. $this->assign('data', $sel);
  8. $this->display();
  9. }
  10. public function upload(){
  11. $upload_img=M('upload_img');
  12. if(!empty($_FILES)){
  13. //上传单个图像
  14. $upload = new \Think\Upload();// 实例化上传类
  15. $upload->maxSize = 1*1024*1024 ;// 设置附件上传大小
  16. $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
  17. $upload->rootPath = 'Public/Uploads/'; // 设置附件上传根目录
  18. $upload->savePath = ''; // 设置附件上传(子)目录
  19. $upload->saveName=array('uniqid','');//上传文件的保存规则
  20. $upload->autoSub = true;//自动使用子目录保存上传文件
  21. $upload->subName = array('date','Ymd');
  22. // 上传单个图片
  23. $info = $upload->uploadOne($_FILES['image']);
  24. if(!$info) {// 上传错误提示错误信息
  25. $this->error($upload->getError());
  26. }else{// 上传成功 获取上传文件信息
  27. $img_url=$info['savepath'].$info['savename'];
  28. $data['img_url']=$img_url;
  29. $data['img_name']=$info['savename'];
  30. $data['create_time']=NOW_TIME;
  31. $upload_img->create($data);
  32. $result=$upload_img->add();
  33. if(!$result){
  34. $this->error('上传失败!');
  35. }else{
  36. $this->success('上传成功');
  37. }
  38. }
  39. }
  40. }
  41. }

thinkphp表单上传文件并将文件路径保存到数据库中的更多相关文章

  1. Express+MySQL实现图片上传到服务器并把路径保存到数据库中

    demo准备:mysql5.7.20 express4.0 处理图片文件的中间件Multer 先搭建服务器并展示html页面 const express = require("express ...

  2. Linux 基础命令-CURL 表单上传文件

    CURL -F, --form <name=content> (HTTP) This lets curl emulate a filled-in form in which a user ...

  3. 一般处理程序上传文件(html表单上传、aspx页面上传)

    html 表单上传文件        一般处理程序由于没有 apsx 页面的整个模型和控件的创建周期,而比较有效率.这里写一个用 html 表单进行文件上传的示例.        1. 表单元素选用 ...

  4. 文件的上传(表单上传和ajax文件异步上传)

    项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举的主要对于小文件上传的处理! 资源下载: 一. ...

  5. 普通文件的上传(表单上传和ajax文件异步上传)

    一.表单上传: html客户端部分: <form action="upload.ashx" method="post" enctype="mul ...

  6. django 基于form表单上传文件和基于ajax上传文件

    一.基于form表单上传文件 1.html里是有一个input type="file" 和 ‘submit’的标签 2.vies.py def fileupload(request ...

  7. java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例

    java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...

  8. Express下使用formidable实现POST表单上传文件并保存

    Express下使用formidable实现POST表单上传文件并保存 在上一篇文章中使用formidable实现了上传文件,但没将它保存下来. 一开始,我也以为是只得到了文件的相关信息,需要用fs. ...

  9. 巨蟒python全栈开发django11:ajax&&form表单上传文件contentType

    回顾: 什么是异步? 可以开出一个线程,我发出请求,不用等待返回,可以做其他事情. 什么是同步? 同步就是,我发送出了一个请求,需要等待返回给我信息,我才可以操作其他事情. 局部刷新是什么? 通过jq ...

随机推荐

  1. Android背景渐变色效果

    Android设置背景色可以通过在res/drawable里定义一个xml,如下: [代码]xml代码: 1 <?xml version="1.0" encoding=&qu ...

  2. 使用 ZooKeeper 同步集群配置

    用 ZooKeeper 同步集群配置,当需要修改所有节点配置时,将配置更新到 ZooKeeper 的一个节点,引起这个节点数据发生变化, 其他所有需要同步配置的节点上的本地 Watcher 会立即发现 ...

  3. pomelo 开发环境搭建

    开发前提条件:  Windows系统,请确保你的Windows系统包括源代码编译工具.Node.js的源代码主要由C++代码和JavaScript代码构成,可是却用gyp工具来做源代码的项目管理,该工 ...

  4. Git链接到自己的Github(1)简单的开始

    好长时间没上来弄东西了,今天回来先开始弄下Git,之后再继续写uboot与kernel的编译,在版本控制下更加宏观地观察每次的变化. 1.在ubuntu中安装git $ sudo apt-get in ...

  5. [xml解析]rapidxml读取文件

    因为项目需要读取xml配置文件,在原来调查一番后,项目组使用了tinyxml. tinyxml确实简单,非常清楚的就把读取方案写出来了.但是,由于后期xml文件越来越大(2.5M,大概1w多行数据), ...

  6. java8 之java.time

    Java 8 之 java.time 包 标签: java java8 | 发表时间:2013-10-15 08:29 | 作者:coderbee 分享到: 出处:http://coderbee.ne ...

  7. 转:vim----复制粘贴

    vim有12个粘贴板,分别是0.1.2.....9.a.“.+:用:reg命令可以查看各个粘贴板里的内容.在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容: 要将 ...

  8. oracle交集,并集,差集

    引自:http://www.2cto.com/database/201308/238777.html [sql] create table test1 ( name ), NN ) ); insert ...

  9. Jquery 实现Xml文件内容处理

    用JS对XMl文件处理实现和用JS处理一般的Dom元素一样; 加载一个Xml内容与新建一个Dom元素基本相同 如: 1.新建一个Dom元素的Jquey语法为:$("<p>hell ...

  10. 【原创】java 流星划过天空

    import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import javax.s ...