一将文件存到项目路径下,数据库保存图片的路径
多文件上传思路是,上传一个文件服务器上同时入库表,然后会callback返回文件信息,js将文件ID插入input fileId,提交整个表单的时候,做sqlupdate将文件的from_id,from_table关联上。
设计优点:根据from_id,from_table可以很方便的判断服务器上的文件哪些是无用的临时文件,哪些是用户的有用文件,可以定期做文件清理操作
CREATE TABLE `dfj_attachment` ( `file_id` int(11) NOT NULL AUTO_INCREMENT, `from_table` varchar(40) NOT NULL DEFAULT '' COMMENT '分类', `from_id` int(11) NOT NULL DEFAULT '0' COMMENT '分类ID', `input_name` varchar(40) NOT NULL DEFAULT '' COMMENT '表单input', `file_name` varchar(90) NOT NULL DEFAULT '' COMMENT '文件原名', `file_size` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '文件大小', `downloads` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '下载次数', `save_path` varchar(200) NOT NULL DEFAULT '' COMMENT '上传的文件', `thumb_path` varchar(200) DEFAULT NULL COMMENT '缩略图', `is_image` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '是否是图片 1是 0否', `user_id` int(11) DEFAULT '0' COMMENT '用户ID', `user_name` varchar(100) DEFAULT NULL COMMENT '用户名', `upload_ip` char(15) DEFAULT NULL COMMENT '上传的IP', `creatd_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `listorder` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '排序', `status` tinyint(3) NOT NULL DEFAULT '0' COMMENT '状态', PRIMARY KEY (`file_id`), KEY `tab_name` (`from_table`,`from_id`,`input_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='上传附件';uploadify 上传不成功时的调试
$(function() { $("#file_upload").uploadify({ 'swf' : '/uploadify/uploadify.swf', 'uploader' : '/uploadify/uploadify.php', 'onUploadSuccess' : function(file, data, response) { alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data); } }); });
二.把图片数据直接保存在你的MySQL数据库,根据二进制的数据生成对应的图片
首先,你必须在你的MySQL中建立一个新的数据库,我们将会把那些二进制文件储存在这个数据库里。在例子中我会使用下列结构,为了建立数据库,你必须做下列步骤:
CREATE TABLE `binary_data` ( `id` int(4) NOT NULL AUTO_INCREMENT, `description` char(50) DEFAULT NULL, `bin_data` longblob, `filename` char(50) DEFAULT NULL, `filesize` char(50) DEFAULT NULL, `filetype` char(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf-8;
保存图片
#$file_data = file_get_contents($_FILES["myfile"]['tmp_name']); INSERT INTO receive(file_data,file_type,file_name,file_size)VALUES('$file_data','$file_type','$file_name',$file_size);
PHP自动将图片转换成BASE64 base64转换成图片
<?php function base64_encode_image ($filename='string',$filetype='string') { if ($filename) { $imgbinary = fread(fopen($filename, "r"), filesize($filename)); //file_put_contents('b.png',$imgbinary); return 'data:image/' . $filetype . ';base64,' . base64_encode($imgbinary); } } ?> <img src="<?php echo base64_encode_image ('a.png','png'); ?>"/>
asdfas
public function getFileList($from_table, $from_id, $input_name = '') { $where = ['from_table' => $from_table, 'from_id' => $from_id]; if ($input_name) { $where['input_name'] = $input_name; } $list = $this->where($where)->order('listorder asc')->select(); if (empty($input_name)) { $list = Arr::group($list, 'input_name'); } return $list; } public function removeFile($from_table, $from_id, $input_name = '') { $where = ['from_table' => $from_table, 'from_id' => $from_id]; if ($input_name) { $where['input_name'] = $input_name; } $this->where($where)->delete(); } public function getTablesFileList($from_table, $ids, $input_name = '') { $where = ['from_table' => $from_table, 'from_id' => ['IN', $ids]]; if ($input_name) { $where['input_name'] = $input_name; } $list = $this->where($where)->order('listorder asc')->select(); $list = Arr::group($list, 'from_id', 'input_name'); return $list; }
相关推荐
Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式...
java多文件上传实现,上传界面采用flash,同时显示上传进度条
bootstrap-fileinput-master多文件上传,多文件预览,网页的代码地址为https://mp.csdn.net/postedit/84098479
基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 项目经过严格测试,确保可以运行! 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...
基于Struts框架的多文件上传组件设计和研究,这个是文件,对于要写毕业论文的同学会很有帮助的
* 在文件上传的同时能够发送额外的POST数据 * 针对每一个文件上传发送POST/GET数据 * 更直观的事件回调 * 动态修改实例设置 * 接收服务端返回的数据 * 非取消形式的停止文件上传 * 自定义上传的顺序 * 支持...
多文件批量上传界面漂亮 jsp页面控制多文件上传 把这个部署到Eclipse里面就可以看到效果 然后提取您需要的部分。
[上传下载]Ajax UpLoadFile 多个大文件上传控件 v1.15_ltajaxupfilecontrol.zip源码A[上传下载]Ajax UpLoadFile 多个大文件上传控件 v1.15_ltajaxupfilecontrol.zip源码A[上传下载]Ajax UpLoadFile 多个大文件上传...
python web开发,基于flask的练手项目---文件上传下载的管理系统的设计与实现python web开发,基于flask的练手项目---文件上传下载的管理系统的设计与实现python web开发,基于flask的练手项目---文件上传下载的管理...
基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于...
文件自动上传FTP服务器的设计与实现 文件自动上传FTP服务器的设计与实现 文件自动上传FTP服务器的设计与实现 文件自动上传FTP服务器的设计与实现 文件自动上传FTP服务器的设计与实现 文件自动上传FTP服务器的设计与...
[上传下载]带进度条大文件上传源码(单文件多文件都可以传)_uploaddemo.zip源码ASP.NET网站源码打包下载[上传下载]带进度条大文件上传源码(单文件多文件都可以传)_uploaddemo.zip源码ASP.NET网站源码打包下载[上传...
文件上传是项目开发常见的功能,为了在每次开发中降低开发难度,节省时间,我们把处理文件上传的代码封装入一个类中,使得使用简单的几条代码就实现复杂的文件上传。
C++ 实现多线程文件传输的设计与实现,多线程提高了传输效率。
基于Java EE的文件批量上传的设计与实现,经测试,系统完美运行。
这个协议不但支持大文件上传,而且支持断点续传、多用户同时上传一个文件速度加倍、文件秒传等等,基本完全满足了我们自己的文件上传需求。这个协议包含后端和前端,可以根据协议自行修改为自己的语言
本项目是一个基于Springboot2.x的文件上传...系统设计旨在为用户提供一个高效、便捷的文件上传下载服务,支持大文件分片上传、断点续传和秒传功能,同时提供了一个美观的前端页面,以满足用户在文件管理方面的需求。
文件上传和下载 文件上传和下载 文件上传和下载