好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php图片上传分类存储 php实现图片上传

很多站长朋友们都不太清楚php图片上传分类存储,今天小编就来给大家整理php图片上传分类存储,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php表单上传图片到七牛云存储并返回地址……求具体流程~有代码更好 2、 php图片上传功能(专业的进) 3、 thinkphp如何将多张上传的图片根据状态分别存储! 4、 用php处理后的图片怎样上传至指定目录或上传到数据库? php表单上传图片到七牛云存储并返回地址……求具体流程~有代码更好

有的,我最近研究了一下,写了一篇记录,如下

原文地址:

网上关于七牛云存储的教程除了官网上的API文档,其他的资料太少了。研究了下API之后,现在已经能实现图片的上传和下载及上传之后的重定向。

首先本篇文章实现的功能如下:

1.利用表单上传功能,用户可以点击选择文件按钮,选择本地的一个文件,同时设定上传的图片的名称,点击上传按钮可以上传并存储到七牛云存储。

2.在点击上传时会检测文件的后缀名,限制为jpg和png格式存储。

3.上传成功后跳转到自己设定的一个URL,并传回文件信息,如文件名。而不是显示七牛白花花的json显示页面。

好啦,那我们开始吧,首先我们要有一个七牛云存储账号,如果没有的就自己去申请吧。

七牛云存储传送门:

一.SDK下载

戳这个网址下载一下SDK吧,里面封装了文件上传下载等等的方法,我们引入之后可以直接调用。

SDK之中有一个qiniu的文件夹,这是所有的SDK实货,这个是最重要的。我们首先要把这个文件夹及里面的文件放到项目文件夹中,比如我放到这里。

大家可以看到有一个qiniu文件夹。好啦,资源支持就是这样。接下来我们要实现代码咯。

二.文件的上传。

1.首先把你七牛云存储的密钥照出来,点击账号设置可以看到有一个AccessKey和SecretKey,留着备用。

2.上传凭证生成。

在这里我们首先要引入rs.php文件,自己找一对应路径,代码如下:

require_once(dirname(__FILE__)."/qiniu/rs.php");

dirname()是指的绝对路径,有时相对路径会出现问题,建议在前面加上dirname方法获取绝对路径。

require_once是引入文件,表示该文件只引入一次。

然后,传入你的AccessKey和SecretKey

代码如下:

$accessKey?=?'Imn35KC5pRX7Ov3scxbYkvNk6oIx7zWsBRp16';??//换成你自己的密钥

$secretKey?=?'s29vc9tlCvs23wRh7QScYTuzCDmEroKj1ddssz';????//换成你自己的密钥

Qiniu_SetKeys($accessKey, $secretKey);

然后建一个上传策略对象,将你的bucket?传入,bucket 就是你的空间名。

$bucket = 'designpartners';

$putPolicy = new Qiniu_RS_PutPolicy($bucket);

然后调用此方法来生成上传凭证。

$upToken = $putPolicy->Token(null);

接下来就写一个html表单

<form?method="post"?action=""?name?=?"form"?enctype="multipart/form-data">

????<ul>

????????????<input?type="hidden"??id="token"?name="token"??value=<?php?echo?$upToken?>>

????????<li>

????????????<label?for="key">key:</label>

????????????<input?name="key"?value="">

????????</li>

????????<li>

????????????<label?for="bucket">照片:</label>

????????????<input?name="file"??type="file"?/>

????????</li>

????????<li>

????????????<input?type="submit"?value="提交"?>

????????</li>

????</ul>

</form>

action?就填写?up.qiniu测试数据,表单提供了一个输入框key,用来输入你想保存的图片名称,上传到七牛之后就是这个名字。

然后一个文件选择,一个提交按钮。运行结果如下:

输入key值和选择照片即可实现照片的上传。哈哈哈有没有很简单。

三、文件下载

原理和文件上传功能相仿。

引入文件

require_once(dirname(__FILE__)."/qiniu/rs.php");

声明你的七牛云存储域名和两个密钥以及向下载的文件名称

$key?=?'00000';

$domain?=?'designpartners.qiniudn测试数据';

$accessKey?=?'IOImn35KC5p3scxbYkvNk6oIxB7zWsBRp16';

$secretKey?=?'s29vc9tlCvs23wCDmIbUSi4EroKj1z';

注意:1.key值即为文件名,不要加后缀

2.domain即为bucket加上qiniudn测试数据,例子中的designpartners就是我在上传图片时用的bucket名。

3.accessKey和secretKey换成你自己的,直接用我的不行的..因为我修改了.

Qiniu_SetKeys($accessKey,?$secretKey);??

$baseUrl?=?Qiniu_RS_MakeBaseUrl($domain,?$key);

$getPolicy?=?new?Qiniu_RS_GetPolicy();

$privateUrl?=?$getPolicy->MakeRequest($baseUrl,?null);

echo?$privateUrl?.?"\n";

传入这四个值即可生成一样url,直接访问url即可实现图片的下载。

在引入图片时直接

<img src = "<?php echo $privateUrl; ?>"/>

即可引入图片咯,很简单的吧。

四、303重定向

在上面的方法中,我们上传图片成功后跳转到up.qiniu测试数据下,会显示白白的网页,显示一个json字符串,但是在实际网站开发中我们肯定 不能让用户看到这种网页,所以我们用到了303跳转。SDK中也为我们封装了这个方法。使用其实非常简单。在上传文件的代码中添加两行代码即可

$putPolicy?=?new?Qiniu_RS_PutPolicy($bucket);

$putPolicy->ReturnUrl?=?site_url()."/upload/receiveInfo";

$putPolicy->ReturnBody='{"key":?$(key)}';

注意:1.?ReturnUrl和ReturnBody必须指定,并且首字母要大写,很多人都小写开头,这样会跳转不成功。

2.ReturnUrl必须是一个公网可以访问的网址,在本地测试是不可能通过的。比如你写成localhost,七牛服务器是定位不到的。

3.这个ReturnUrl的链接后会跟着一个?upload_ret=XXX,可以用get方法获取这个upload_ret。upload_ret的内容是base64安全编码的json形式的key值。

值的解析:比如我上传的文件名是555

upload/receiveInfo?upload_ret=eyJrZXkiOiAiNTU1In0=

网址后缀如上所示,把那个upload_ret复制下来,用base64解码可以出现如下结果:

{"key": "555"}

所以,我们要获取555这个值的代码如下,即解析代码如下:

$upload_ret?=?$_GET['upload_ret'];

$json_ret?=?base64_decode($upload_ret);

$result=json_decode($json_ret);

echo?"key".$result->key;

好啦,获取到这个key值之后,你可以选择存到数据库或者进行其他的操作咯。

五、上传前文件类型的验证

我们可以用js来验证文件的后缀名,

在form的属性里加上

onsubmit="return isValidateFile('file');"

加上一个js方法

<script>

function?isValidateFile(obj)?{

var?extend?=?document.form.file.value.substring(document.form.file.value.lastIndexOf(".")?+?1);

if?(extend?==?"")?{

alert("请选择头像");

return?false;

}

else?{

if?(!(extend?==?"jpg"?||?extend?==?"png"))?{

alert("请上传后缀名为jpg或png的文件!");

return?false;

}

}

return?true;

}

</script>

即可验证它的类型是否合法。

附:CI代码实现:

获取Uptoken:

function?getUptoken(){

require_once(dirname(__FILE__)."/qiniu/rs.php");

//远程存储空间名称

$bucket?=?'designpartners';

$accessKey?=?'IOImn35KCRX7Ov3scvNk6oIxB7zWsBRp16';

$secretKey?=?'s29vc9tlCvs23wRhTuzCDmIbUSi4EroKj1z';

Qiniu_SetKeys($accessKey,?$secretKey);

$putPolicy?=?new?Qiniu_RS_PutPolicy($bucket);

echo?site_url();

$putPolicy->ReturnUrl?=?site_url()."/upload/receiveInfo";

$putPolicy->ReturnBody='{"key":?$(key)}';

$upToken?=?$putPolicy->Token(null);

return?$upToken;

}

文件上传:

public?function?uploadPic(){

$upToken?=?$this->getUptoken();

????????$data['upToken']?=?$upToken;

$this->load->view('upload',$data);

}

303重定向解析:

public?function?receiveInfo(){

$upload_ret?=?$_GET['upload_ret'];

$json_ret?=?base64_decode($upload_ret);

$result=json_decode($json_ret);

echo?"key".$result->key;?

}

文件下载:

public?function?downloadPic(){

require_once(dirname(__FILE__)."/qiniu/rs.php");

$key?=?'00000';

$domain?=?'designpartners.qiniudn测试数据';

$accessKey?=?'IOImn35KC57Ov3scxbYkvNk6oIxB7zWsBRp16';

$secretKey?=?'s29vc9tlCvsh7QScYTuzCDmIbUSi4EroKj1z';

Qiniu_SetKeys($accessKey,?$secretKey);??

$baseUrl?=?Qiniu_RS_MakeBaseUrl($domain,?$key);

$getPolicy?=?new?Qiniu_RS_GetPolicy();

$privateUrl?=?$getPolicy->MakeRequest($baseUrl,?null);

echo?"====>?getPolicy?result:?\n";

echo?$privateUrl?.?"\n";

}

表单:

<script>

function?isValidateFile(obj)?{

var?extend?=?document.form.file.value.substring(document.form.file.value.lastIndexOf(".")?+?1);

if?(extend?==?"")?{

alert("请选择头像");

return?false;

}

else?{

if?(!(extend?==?"jpg"?||?extend?==?"png"))?{

alert("请上传后缀名为jpg或png的文件!");

return?false;

}

}

return?true;

}

</script>

<form?method="post"?action=""?name?=?"form"?enctype="multipart/form-data"?onsubmit="return?isValidateFile('file');">

????<ul>

????????????<input?type="hidden"??id="token"?name="token"??value=<?php?echo?$upToken?>>

????????<li>

????????????<label?for="key">key:</label>

????????????<input?name="key"?value="">

????????</li>

????????<li>

????????????<label?for="bucket">照片:</label>

????????????<input?name="file"??type="file"?/>

????????</li>

????????<li>

????????????<input?type="submit"?value="提交"?>

????????</li>

????</ul>

</form>

php图片上传功能(专业的进)

if ($_FILES) {

$valid = Validation::factory($_FILES)

->rule('avatar', 'Upload::valid')

->rule('avatar', 'Upload::not_empty')

->rule('avatar', 'Upload::size', array(':value', Kohana::$config->load('upload.image.size')))

->rule('avatar', 'Upload::type', array(':value', Kohana::$config->load('upload.image.type')));

if ($valid->check()) {

$filename = AUTH::instance()->get_user()->id . '.' . pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION); try {

$filepath = Upload::save($_FILES['avatar'], $filename, DOCROOT . 'profile' . DIRECTORY_SEPARATOR . 'avatar');

if ($filepath) {

$image = Image::factory($filepath);

$image->resize(150, 150, Image::INVERSE);

$image->crop(150, 150);

$image->save();

$profile->user_id = $this->mAccount->id;

$profile->avatar = $filename;

$profile->save();

} else {

$errors = array('avatar' => '头像上传失败');

}

} catch (Kohana_Exception $e) {

$errors = array('avatar' => $e->getMessage());

}

} else {

$errors = $valid->errors('upload');

}

}

thinkphp如何将多张上传的图片根据状态分别存储!

=-=表

id 图标属于的文章ID(或其他) 图片储存位置 图片是否公开

表单

图片上传使用异步上传也就是

frame包涵上传用的PHP

这样你就可以对一个文件进行单独管理

如果你不想这样则可以

图 选项

图 选项

图 选项

然后

根据上传图片信息把选项压进数组

用php处理后的图片怎样上传至指定目录或上传到数据库?

<?php

/*

* Programmer : Msn/QQ haowubai@hotmail测试数据 (925939)

* Develop a project PHP - MySQL - Apache

* Window 2003 - Preferences - PHPeclipse - PHP - Code Templates

*/

if (is_uploaded_file($_FILES['upfile']['tmp_name'])){

$upfile=$_FILES["upfile"];

$name = $upfile["name"];

$type = $upfile["type"];

$size = $upfile["size"];

$tmp_name = $upfile["tmp_name"];

$error = $upfile["error"];

switch ($type) {

case 'image/pjpeg' : $ok=1;

break;

case 'image/jpeg' : $ok=1;

break;

case 'image/gif' : $ok=1;

break;

case 'image/png' : $ok=1;

break;

}

if($ok $error=='0'){

move_uploaded_file($tmp_name,'up/'.$name);//为上传的目录

echo "上传成功";

}

}

?>

<form action="" enctype="multipart/form-data" method="post" name="upform">

上传文件:

<input name="upfile" type="file">

<input type="submit" value="上传"><br>

</form>

PHP100视频中14讲有说明

关于php图片上传分类存储的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php图片上传分类存储 php实现图片上传的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did242480
更新时间:2023-05-28   阅读:24次

上一篇: php插件的制作 phpstorm插件开发教程

下一篇:php推送ajax php推送消息到

相关资讯

最新资料更新

  • 1.php实现频率限制 php限制频繁访问
  • 2.php下载csv乱码 php下载文件名乱码
  • 3.图片执行php代码 图片执行php代码是什么
  • 4.php异步协程 php yield 异步
  • 5.学校php培训机构 php培训学校是什么意思
  • 6.php后端需要css吗 php后端教程
  • 7.有哪些php社区 phpbbs
  • 8.php中文变量问号 php变量使用
  • 9.php是否为post的简单介绍
  • 10.php带协议跳转 php跳转函数
  • 11.php短信被刷 php防止短信被刷
  • 12.phpmysql当天 mysql 当天
  • 13.php编程圆面积 编程实现圆的面积
  • 14.无限级菜单php java无限极菜单
  • 15.php批量取中间 php批量删除数据
  • 16.zendphp环境包 win环境包
  • 17.图片二进制php 图片二进制转换器
  • 18.红帽升级php 红帽linux最新版
  • 19.php比较运算符价格 php中用于比较字符串的函数
  • 20.php视频太大怎么传输 php上传视频压缩

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]