一将文件存到项目路径下,数据库保存图片的路径
多文件上传思路是,上传一个文件服务器上同时入库表,然后会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多线程设计模式...
【标题】:多文件上传和展示 在网页开发中,多文件上传功能是常见的需求,尤其是在数据管理和资源共享的场景下。Bootstrap-fileinput 是一个流行的、功能丰富的jQuery插件,专门用于实现美观且实用的文件上传功能,...
这个"多文件批量上传界面漂亮"的项目,显然关注的是提供一个美观且高效的文件上传体验。以下将详细介绍相关知识点: 1. **多文件上传**:传统的HTML表单仅支持单个文件的上传,但通过HTML5的`...
在Java开发中,多文件上传是一项常见的功能,尤其在Web应用中,用户可能需要一次性上传多个文件,如图片、文档等。本知识点将详细介绍如何在Java中实现这一功能,以及结合Flash实现上传界面并显示上传进度条。 1. *...
基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 项目经过严格测试,确保可以运行! 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...
在IT领域,大文件上传和多文件上传是两个常见的需求,尤其在云存储、文件分享、协同工作等场景中显得尤为重要。以下是对这两个知识点的详细解释: 大文件上传: 大文件上传是指允许用户上传超过一般浏览器或服务器...
在uniapp框架中,多文件上传是一个常见的功能需求,尤其在构建移动应用或者Web应用时。uniapp基于Vue.js,提供了丰富的API接口,使得开发者能够方便地实现这一功能。本篇将详细介绍如何在uniapp中进行多文件上传,并...
在Web开发中,JSP(JavaServer Pages)...总的来说,JSP多文件上传涉及前后端的协作,包括HTML表单设计、JSP与Servlet交互、文件解析、存储、错误处理和安全性等多个方面。正确实现这一功能需要对Web开发有深入的理解。
在C#编程环境中,实现多服务器多文件上传的实例是一个涉及网络编程、并发处理和分布式系统设计的重要技术问题。在大型应用或者云服务环境中,为了提高系统的可用性和可靠性,通常会采用多服务器集群架构。本实例就是...
提供的"文件上传效果图.png"展示了用户界面的设计,包括文件选择、进度条显示和上传状态反馈等元素。这种可视化反馈有助于提升用户体验,让用户了解上传的进度和状态。 6. **工程文件**: "FileUpload.sln"是...
综上所述,“Ext3.0实现多文件上传.rar”这个压缩包中的代码示例可能涵盖了以上技术点,提供了一个完整的多文件上传解决方案,包括前端的交互设计和后台的文件处理逻辑。通过学习和理解这个示例,开发者可以更好地...
`vue-upload-component`是一个专门为Vue.js设计的文件上传组件,它提供了以上所有功能。以下是该组件的一些主要特性: - 支持多文件选择和拖放上传,提供良好的用户体验。 - 可以设置`put`或`post`请求方法,根据...
在本文中,我们将深入探讨如何使用MVC(Model-View-Controller)模式来实现一个支持多文件上传的程序。MVC是一种广泛应用于Web开发的设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器...
本文将深入探讨如何实现"多文件上传,并显示每一个的进度"这一功能,涉及前端技术和后端处理。 首先,前端部分。这里提到的前端框架有easyUI、AmazeUI以及JavaScript。EasyUI是一个基于jQuery的UI库,提供了丰富的...
在Netty中实现多文件上传,需要设计一个自定义的编解码器(Encoder和Decoder),来处理HTTP请求或自定义的二进制协议,以包装每个文件数据。每个文件会被分割成多个数据块,然后逐个发送。服务端接收这些数据块,...
JavaScript实现的多文件上传是一种常见的前端技术,它允许用户一次性选择并上传多个文件,提高了用户在网站上的交互体验。在本项目中,开发者利用JavaScript的File API和其他相关技术创建了一个功能强大且样式美观的...
本示例主要关注"jsp多文件上传",结合了jQuery和plupload库来实现这一功能。以下是对这些知识点的详细解释: 1. **JSP(JavaServer Pages)**:JSP是Java的一种动态网页技术,它允许开发人员在HTML代码中嵌入Java...
这里,我们主要关注"springMVC多文件上传需要的jar"这一资源,它包含了实现这一功能所必需的Java档案(JAR)文件。 首先,Spring MVC是Spring框架的一个模块,专门处理Web应用的请求和响应。它提供了模型-视图-控制...