Login
网站首页 > 文章中心 > 其它

php把图片上传到又拍云_PHP图片上传

作者:小编 更新时间:2023-08-02 13:54:46 浏览量:411人看过

thinkphp怎么用又拍云上传文件?

thinkphp内置又拍云上传引擎的,修改配置文件就可以

'FILE_UPLOAD_TYPE'?=?'Ftp',

'UPLOAD_TYPE_CONFIG'?=?array(??

'host'??=?'',?//又拍云服务器

'username'?=?'',?//又拍云用户

php把图片上传到又拍云_PHP图片上传-图1

'password'?=?'',?//又拍云密码

'bucket'?=?'',?//空间名称

),

怎样用php实现上传图片到数据库

php实现上传图片保存到数据库的方法.具体分析如下:

php 上传图片,一般都使用move_uploaded_file方法保存在服务器上.但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外)

如果把图片数据保存到数据库中,多台服务器间可以实现文件共享,节省空间.

首先图片文件是二进制数据,所以需要把二进制数据保存在mysql数据库.

mysql数据库提供了BLOB类型用于存储大量数据,BLOB是一个二进制对象,能容纳不同大小的数据.

BLOB类型有以下四种,除存储的最大信息量不同外,其他都是一样的.可根据需要使用不同的类型.

数据表photo,用于保存图片数据,结构如下:

CREATE?TABLE?+photo+?(?

+id+?int(10)?unsigned?NOT?NULL?auto_increment,?

+type+?varchar(100)?NOT?NULL,?

+binarydata+?mediumblob?NOT?NULL,?

PRIMARY?KEY?(+id+)?

)?ENGINE=MyISAM?DEFAULT?CHARSET=latin1?AUTO_INCREMENT=1?;

upload_image_todb.php代码如下:

php?

//?连接数据库?

$conn=@mysql_connect("localhost","root","")?or?die(mysql_error());?

@mysql_select_db('demo',$conn)?or?die(mysql_error());?//?判断action?

$action?=?isset($_REQUEST['action'])?$_REQUEST['action']?:?'';?

//?上传图片?

if($action=='add'){?

$image?=?mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name']));?

$type?=?$_FILES['photo']['type'];?

$sqlstr?=?"insert?into?photo(type,binarydata)?values('".$type."','".$image."')";?

@mysql_query($sqlstr)?or?die(mysql_error());?

header('location:upload_image_todb.php');?

exit();?

//?显示图片?

}elseif($action=='show'){?

$id?=?isset($_GET['id'])?intval($_GET['id'])?:?0;?

$sqlstr?=?"select?*?from?photo?where?id=$id";?

$query?=?mysql_query($sqlstr)?or?die(mysql_error());?

$thread?=?mysql_fetch_assoc($query);?

if($thread){?

header('content-type:'.$thread['type']);?

echo?$thread['binarydata'];?

}?

}else{?

//?显示图片列表及上传表单?

html?

head?

title?upload?image?to?db?demo?/title?

/head?

body?

form?name="form1"?method="post"?action="upload_image_todb.php"?enctype="multipart/form-data"?

p图片:input?type="file"?name="photo"/p?

pinput?type="hidden"?name="action"?value="add"input?type="submit"?name="b1"?value="提交"/p?

/form?

$sqlstr?=?"select?*?from?photo?order?by?id?desc";?

$result?=?array();?

while($thread=mysql_fetch_assoc($query)){?

$result[]?=?$thread;?

foreach($result?as?$val){?

echo?'pimg?

src="upload_image_todb.php?action=showid='.$val['id'].'t='.time().'"

/body?

/html?

程序运行截图和数据库截图:

用php如何把一些文件和图片上传到另一指定的服务器

一个实例:

首先,在自己台式机和笔记本上都开通了ftp,这个不会的同学可以网上查serv-u,相关教程肯定不少的.

然后在台式机本地做了个测试:

$ftp_user_name = "laohu";

$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

$file = 'test.txt';

$remote_file = '/test/a.txt';

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {

echo "文件移动成功\n";

} else {

echo "移动失败\n";

}

ftp_close($conn_id);

运行后:文件移动成功.

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

$ftp_user_name = "lesley";

$file = $_FILES['uploadfile']['tmp_name'];

$remote_file = '/test/'.$_FILES['uploadfile']['name'];

echo "文件:".$_FILES['uploadfile']['name']."上传成功\n";

echo "上传失败\n";

对应的前台页面代码:

form action="uploadfile.php" method="post" enctype="multipart/form-data"

input type="file" name="uploadfile" id="uploadfile" /

input type="submit" name="submit" value="submit" /

/form

运行后确实成功.

需要注意:

在用ftp_put方法时,第四个参数传送模式,需要用FTP_BINARY(二进制模式),用FTP_ASCII(文本模式)时,图片能上传但无法显示,其他文件重命名、中文乱码解决、上传权限控制等,就不在此提及了.

简单的PHP上传图片并且显示的问题,

处理页面的代码:

$file = $_FILES['image']; //得到上传文件的数组,包括文件大小,类型等数组元素

$url = "imgs/".$file['name']; //上传后的图片地址

if(move_uploaded_file($file['tmp_name'],$url)){ //将图片上传到指定路径

//将$url存入数据库,(如果路径是固定的,也可以只把文件名存入数据库,取数据的时候在代码里加上路径就好了)

......

}else{

echo "上传失败";

要显示图片就只要从数据库里获取指定图片的路径,然后显示就可以了

php表单上传图片到七牛云存储并返回地址......求具体流程~有代码更好

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

原文地址:

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

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

七牛云存储传送门:

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

大家可以看到有一个qiniu文件夹.好啦,资源支持就是这样.此时此刻呢我们要实现代码咯.

二.文件的上传.

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

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

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

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

然后,传入你的AccessKey和SecretKey

代码如下:

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

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

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

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

/ul

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

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

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

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

引入文件

$key?=?'00000';

$domain?=?'designpartners.qiniudn.com';

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

Qiniu_SetKeys($accessKey,?$secretKey);?

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

$getPolicy?=?new?Qiniu_RS_GetPolicy();

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

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

在引入图片时直接

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

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

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

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

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

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

upload/receiveInfo?upload_ret=eyJrZXkiOiAiNTU1In0=

$upload_ret?=?$_GET['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?true;

/script

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

附:CI代码实现:

获取Uptoken:

function?getUptoken(){

//远程存储空间名称

$bucket?=?'designpartners';

Qiniu_SetKeys($accessKey,?$secretKey);

echo?site_url();

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

return?$upToken;

文件上传:

public?function?uploadPic(){

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

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

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

public?function?receiveInfo(){

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

public?function?downloadPic(){

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

表单:

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

以上就是土嘎嘎小编为大家整理的php把图片上传到又拍云相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章