阿里雲php上傳圖片,php實現圖片上傳

本文目錄一覽:

PHP 如何上傳圖片和文字?

直接form表單加上上傳的屬性,在php那裡判斷下 $_FILE裏面的臨時文件是否存在,存在就遍歷,然後定義一個數組。把上傳到服務器端的臨時文件挪到指定位置,然後把路徑存到數組裏面,最終存到數據庫。就實現上傳了

php為什麼上傳圖片會失敗

一般來說,可以通過報錯來解決或者說找到問題,但你只有一個標題,所以不知道什麼錯,無法給出具體解決方法,但一般來說會從以下幾個點入手:

1、檢查文件大小,是否有做這個限制,apache默認應該是2M的

2、檢查圖片保存路徑,是否有寫入權限

3、查看代碼,是否有寫錯上傳代碼

先定位到錯誤的位置,就好解決問題了

怎樣用php實現上傳圖片到數據庫

php實現上傳圖片保存到數據庫的方法。具體分析如下:

php 上傳圖片,一般都使用move_uploaded_file方法保存在服務器上。但如果一個網站有多台服務器,就需要把圖片發佈到所有的服務器上才能正常使用(使用圖片服務器的除外)

如果把圖片數據保存到數據庫中,多台服務器間可以實現文件共享,節省空間。

首先圖片文件是二進制數據,所以需要把二進制數據保存在mysql數據庫。

mysql數據庫提供了BLOB類型用於存儲大量數據,BLOB是一個二進制對象,能容納不同大小的數據。

BLOB類型有以下四種,除存儲的最大信息量不同外,其他都是一樣的。可根據需要使用不同的類型。

TinyBlob       最大 255B

Blob              最大 65K

MediumBlob  最大 16M

LongBlob      最大 4G

數據表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’];  

        exit();  

    }  

}else{  

// 顯示圖片列表及上傳表單  

?  

!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “”  

html  

 head  

  meta http-equiv=”content-type” content=”text/html; charset=utf-8″  

  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  

  

?php  

    $sqlstr = “select * from photo order by id desc”;  

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

    $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().'”

 width=”150″/p’;  

    }  

?  

/body  

/html  

?php  

}  

?

程序運行截圖和數據庫截圖:

求助阿里雲服務器上傳圖片代碼php版本

if($_GET[‘act’]==”do”){

$pathinfo = pathinfo(__FILE__);

define(‘DOCROOT’, $pathinfo[‘dirname’] . DIRECTORY_SEPARATOR);

$tmp_name = DOCROOT. ‘tmp/’.$_FILES[‘file’][‘tmp_name’];

if(move_uploaded_file($_FILES[‘file’][‘name’],$tmp_name)){

echo “上傳成功”;

}else{

echo “失敗了”;

}

}

?

form action=”shang.php?act=do” enctype=”multipart/form-data” method=”post” name=”file”

上傳文件:

input name=”file” type=”file”/

input type=”submit” value=”上傳”/br/

/form

阿里雲oss php上傳圖片問題 上傳前把圖片重命名之後再上傳到oss 怎麼寫代碼呢

他這裡有一個上傳示例的

?php 

 

/** 

* 加載sdk包以及錯誤代碼包 

*/ 

require_once ‘oss_php_sdk/sdk.class.php’; 

$oss_sdk_service = new ALIOSS(); 

$bucket = ‘你的bucket名字’; 

 

if ((($_FILES[“file”][“type”] == “image/gif”) 

|| ($_FILES[“file”][“type”] == “image/jpeg”) 

|| ($_FILES[“file”][“type”] == “image/pjpeg”)) 

 ($_FILES[“file”][“size”]  2000000)) 

    if ($_FILES[“file”][“error”]  0) 

    { 

        echo “Return Code: ” . $_FILES[“file”][“error”] . “br /”; 

    } 

    else 

    { 

        echo “Upload: ” . $_FILES[“file”][“name”] . “br /”; 

        echo “Type: ” . $_FILES[“file”][“type”] . “br /”; 

        echo “Size: ” . ($_FILES[“file”][“size”] / 1024) . ” KBbr /”; 

        echo “Temp file: ” . $_FILES[“file”][“tmp_name”] . “br /”; 

 

        $content = ”; 

        $length = 0; 

        $fp = fopen($_FILES[“file”][“tmp_name”],’r’); 

        if($fp) 

        { 

            $f = fstat($fp); 

            $length = $f[‘size’]; 

            while(!feof($fp)) 

            { 

                $content .= fgets($fp,8192); 

            } 

        } 

        $upload_file_options = array(‘content’ = $content, ‘length’ = $length); 

        $upload_file_by_content = $oss_sdk_service-upload_file_by_content($bucket, $_FILES[“file”][“name”], $upload_file_options); //$_FILES[“file”][“name”]這個就是文件名,你可以自己定義的。

        $img_url = “” . $bucket . “/” . $_FILES[“file”][“name”]; 

        echo “Upload successfully! The OSS URL of this file: ” . $img_url . “br /”; 

        echo “If the bucket is public-read, the uploaded image can be shown as:” . “br /”; 

    echo “img src=$img_url /”; 

    } 

else 

    echo “Invalid file”; 

}

關於文件名我已經給你注釋在代碼中了,你試試看

php中上傳圖片文件時提示不存在的圖像文件

Gd.class.php第42行報錯,應該是在這裡使用的圖片地址用錯了,使用$_Files里的tmp_name才是真實路徑,注意$_Files可能是個多維數組,另外如果確定路徑沒錯,去這個路徑看看圖片是否正確上傳上來,如果圖片真的不存在,就是上傳有問題

php上傳原理,是把文件先保存在一個臨時目錄,比如C:/tmp(這個路徑可以在php的配置文件里配),然後需要你手動把臨時文件轉移到你的目標文件,比如D:/uploads,如果不做這一步,頁面關閉後,臨時文件會被刪除。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/154833.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-16 14:14
下一篇 2024-11-16 14:14

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • 阿里雲郵箱主機名

    阿里雲郵箱主機名是指在阿里雲購買並綁定域名後,為郵件服務配置的一個記錄類型。在這篇文章中,我們將從多個方面對阿里雲郵箱主機名進行詳細闡述,幫助您更好地了解它的作用、使用方法和注意事…

    編程 2025-04-27
  • 阿里Python技術手冊

    本文將從多個方面對阿里Python技術手冊進行詳細闡述,包括規範、大數據、Web應用、安全和調試等方面。 一、規範 Python的編寫規範對於代碼的可讀性和可維護性有很大的影響。阿…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • 阿里雲Grass使用指南

    本文將為大家詳細介紹阿里雲Grass平台,包括核心概念、使用場景、基本操作、高級特性等內容,幫助大家全面掌握Grass的使用。 一、核心概念 Grass是阿里雲開發的一款全新PAA…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • Maven配置阿里雲鏡像詳解

    Maven是一個基於項目對象模型(POM)的構建工具,用於管理Java項目的構建、依賴和發佈。在使用Maven下載依賴庫時,原始倉庫服務器可能因為網絡原因導致下載速度緩慢或者失敗。…

    編程 2025-04-25

發表回復

登錄後才能評論