php 图片上传 二进制数据模式

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:
1将文件存到项目路径下,保存图片的路径

2.二进制的数据生成对应的图片,如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。   

 

PHP 自动将图片转换成BASE64 

Java代码   收藏代码
  1. <?php  
  2. function base64_encode_image ($filename='string',$filetype='string') {  
  3.     if ($filename) {  
  4.         $imgbinary = fread(fopen($filename, "r"), filesize($filename));  
  5.         //file_put_contents('b.png',$imgbinary);  
  6.         return 'data:image/' . $filetype . ';base64,' . base64_encode($imgbinary);  
  7.     }  
  8. }  
  9. ?>  
  10. <img src="<?php echo base64_encode_image ('a.png','png'); ?>"/>  

二、在MySQL中建立一个新的database    
  首先,你必须在你的MySQL中建立一个新的数据库,我们将会把那些二进制文件储存在这个数据库里。在例子中我会使用下列结构,为了建立数据库,你必须做下列步骤:

Java代码   收藏代码
  1. CREATE TABLE `binary_data` (  
  2.   `id` int(4) NOT NULL AUTO_INCREMENT,  
  3.   `description` char(50) DEFAULT NULL,  
  4.   `bin_data` longblob,  
  5.   `filename` char(50) DEFAULT NULL,  
  6.   `filesize` char(50) DEFAULT NULL,  
  7.   `filetype` char(50) DEFAULT NULL,  
  8.   PRIMARY KEY (`id`)  
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf-8;  

  输入如下命令:   

Java代码   收藏代码
  1. <?php  
  2. if ($_FILES ['myfile'] != "none" && $_FILES ['myfile'] != "") {  
  3.     $time_limit = 60;  
  4.     set_time_limit ( $time_limit );  
  5.     $file_type = $_FILES ['myfile'] ['type'];  
  6.     $file_name = $_FILES ['myfile'] ['name'];  
  7.     $file_size = $_FILES ['myfile'] ['size'];  
  8.     $fp = fopen ( $_FILES ['myfile'] ['tmp_name'], "rb" );  
  9.     if (! $fp)  
  10.         die ( "file open error" );  
  11.     $file_data = addslashes ( fread ( $fp, $file_size ) );  
  12.     fclose ( $fp );  
  13.     /** 等价 
  14.     $file_data = file_get_contents($_FILES["myfile"]['tmp_name']); 
  15.      */  
  16.     $conn = mysql_connect ( "localhost""root""root" );  
  17.     if (! $conn)  
  18.         die ( "error : mysql connect failed" );  
  19.     mysql_select_db ( "test", $conn );  
  20.     $sql = "insert into receive(file_data,file_type,file_name,file_size)values ('$file_data','$file_type','$file_name',$file_size)";  
  21.     $result = mysql_query ( $sql );  
  22.     $id = mysql_insert_id ();  
  23.     mysql_close ( $conn );  
  24.     set_time_limit ( 30 ); //恢复缺省超时设置  
  25.     echo "上传成功--- ";  
  26.     echo "<a href='show_info.php?id=$id'>显示上传文件信息</a>";  
  27. else {  
  28.     echo "你没有上传任何文件";  
  29. }  
  30. ?>  

(5)show_add.php //从数据库里取出文件内容 http://hudeyong926.iteye.com/blog/898072

Java代码   收藏代码
  1. <?php  
  2. $data = mysql_result($result, 0"file_data");  
  3. $type = mysql_result($result, 0"file_type");  
  4. $fileName = mysql_result($result, 0"file_name");  
  5. mysql_close($conn);  
  6.   
  7. $filePath = 'download/' . $userid . "/" . $fileName;  
  8. file_put_contents($fileName,$data);  
  9. header('Location: /download.php?fileName=' . $fileName . '&file=' . $filePath);  
  10. /* 
  11. //download.php 
  12. $fileName = $_GET['fileName']; 
  13. $file_dir = RelativePath . $_GET['file']; 
  14. $file = @ fopen($file_dir, "r"); 
  15. if (!$file) { 
  16.     echo "File does not exist."; 
  17. } else { 
  18.     ob_end_clean(); 
  19.     Header("Content-type: application/octet-stream"); 
  20.     Header("Content-Disposition: attachment; filename=" . $fileName); 
  21.     while (!feof($file)) { 
  22.         echo fread($file, 50000); 
  23.     } 
  24.     fclose($file); 
  25. } 
  26. */  
  27. ?>  

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
16天前
|
数据采集 JSON JavaScript
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
本文介绍了如何使用PHP模拟表单提交并结合代理IP技术抓取京东商品的实时名称和价格,特别是在电商大促期间的数据采集需求。通过cURL发送POST请求,设置User-Agent和Cookie,使用代理IP绕过限制,解析返回数据,展示了完整代码示例。
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
|
22天前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
36 5
|
22天前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
36 3
|
22天前
|
存储 SQL 数据处理
PHP中如何高效地处理大规模数据的排序?
在PHP中处理大规模数据排序时,选择合适的方法至关重要。对于内存内可以处理的数据,可以直接使用PHP内置排序函数;对于超出内存限制的数据,可以考虑分块处理、外部排序或利用数据库的排序功能。根据具体应用场景和数据规模,选择最佳的排序策略,确保排序操作高效且稳定。
22 2
|
28天前
|
关系型数据库 MySQL 数据库连接
13 PHP数据的获取
路老师在知乎上分享了PHP语言的知识,帮助大家入门和深入理解PHP。本文介绍了从结果集中获取一行数据作为对象(`mysqli_fetch_object()`)、获取一行作为枚举数组(`mysqli_fetch_row()`)、获取查询结果集中的记录数(`mysqli_num_rows()`)、释放内存(`mysqli_free_result()`)以及关闭数据库连接(`mysqli_close()`)的方法,并提供了具体示例代码。
28 3
|
1月前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
2月前
|
设计模式 监控 中间件
深入理解PHP中的中间件模式
【10月更文挑战第20天】探索PHP编程世界中的“交通枢纽”——中间件模式。从代码层面剖析如何实现请求和响应的高效管理,以及如何在开发中应用这一模式来增强项目的扩展性和维护性。
|
1月前
|
设计模式 缓存 中间件
探索PHP中的中间件模式
【10月更文挑战第33天】在编程世界中,设计模式是解决常见问题的模板。本文将带你领略PHP中中间件模式的魅力,它如何优雅地处理请求,并保持代码的整洁与可维护性。通过实际代码示例,我们将一步步实现一个简单的中间件框架,让你轻松理解并应用到自己的项目中。
|
2月前
|
中间件 PHP 开发者
深入理解PHP中的中间件模式
【10月更文挑战第6天】在PHP开发中,中间件模式是一种优雅的处理请求和响应的方式。本文将带你探索中间件模式的概念、实现及其在PHP框架中的应用,同时提供实用的代码示例来加深理解。