當前位置:ag真人国际官网-ag旗舰厅官方网站 » 文件管理 » php上傳到圖片伺服器

php上傳到圖片伺服器-ag真人国际官网

發布時間: 2024-07-17 00:46:24

php 編寫 實現上傳圖片至伺服器的函數

php上傳圖片客戶端和伺服器端實現方法分享給大家供大家參考。具體如下:

前台表單代碼






後端php代碼
//這里上傳 $upsize判斷上傳文件的大小
$uppath = "/attached/"; //文件上傳路徑
//轉換根目錄的路徑
if (strpos($uppath, "/") == 0)
{
$i = 0;
$thpath = $_server["script_name"];
$thpath = substr($thpath, 1, strlen($thpath));
while (strripos($thpath, "/") !== false)
{
$thpath = substr($thpath, strpos($thpath, "/") 1, strlen($thpath));
$i = $i;
}
$pp = "";
for ($j = 0; $j < $i; $j)
{
$pp .= "../";
}
$uppaths = $pp . substr($uppath, 1, strlen($thpath));
}
$filename = date("y-m-d");
if (is_dir($uppaths . $filename) != true)
mkdir($uppaths . $filename, 0777);
$f = $_files['pic'];
if ($f["type"] != "image/gif" && $f["type"] != "image/pjpeg" && $f["type"] != "image/jpeg" && $f["type"] != "image/x-png")
{
echo "";
return false;
}
//獲得文件擴展名
$temp_arr = explode(".", $f["name"]);
$file_ext = array_pop($temp_arr);
$file_ext = trim($file_ext);
$file_ext = strtolower($file_ext);
//新文件名
$new_file_name = md5(date("ymdhis")) . '.' . $file_ext;
echo $dest = $uppaths . $filename . "/" . date("ymdhis") . "_" .
$new_file_name; //設置文件名為日期加上文件名避免重復 上傳目錄
echo $dest1 = $uppath . $filename . "/" . date("ymdhis") . "_" .
$new_file_name; //設置文件名為日期加上文件名避免重復
$r = move_uploaded_file($f['tmp_name'], $dest);
?>

② 用php如何把一些文件和圖片上傳到另一指定的伺服器

一個實例:

首先,在自己台式機和筆記本上都開通了ftp,這個不會的同學可以網上查serv-u,相關教程肯定不少的。

然後在台式機本地做了個測試:

$ftp_server = "192.168.1.100";
$ftp_user_name = "laohu";
$ftp_user_pass = "123456";
$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);

運行後:文件移動成功。

要的就是這個效果了,之後用台式機做程序伺服器,上傳附件時全用ftp方法上傳至筆記本上,筆記本ip是105,相應代碼如下:

if (is_uploaded_file($_files['uploadfile']['tmp_name'])) {
$ftp_server = "192.168.1.105";
$ftp_user_name = "lesley";
$ftp_user_pass = "123456";
$conn_id = ftp_connect($ftp_server) or die("couldn't connect to $ftp_server");
$file = $_files['uploadfile']['tmp_name'];
$remote_file = '/test/'.$_files['uploadfile']['name'];
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (ftp_put($conn_id, $remote_file, $file, ftp_binary)) {
echo "文件:".$_files['uploadfile']['name']."上傳成功\n";
} else {
echo "上傳失敗\n";
}
ftp_close($conn_id);
}

對應的前台頁面代碼:






運行後確實成功。

需要注意:
在用ftp_put方法時,第四個參數傳送模式,需要用ftp_binary(二進制模式),用ftp_ascii(文本模式)時,圖片能上傳但無法顯示,其他文件重命名、中文亂碼解決、上傳許可權控制等,就不在此提及了。

③ php中圖片上傳到伺服器的問題

第一種情況:可能是伺服器沒有鏈接上,伺服器的設置有問題。
第二種情況:可能是圖片的路徑有問題,你可以右擊查看圖片屬性,確定路徑。
第三種情況:也就是你說的內存不足。

④ 經典怎樣通過php將本地的文件上傳到伺服器上

創建一個文件上傳表單

允許用戶從表單上傳文件是非常有用的。

請看下面這個供上傳文件的 html 表單:



enctype="multipart/form-data">










請留意如下有關此表單的信息:

標簽的 enctype 屬性規定了在提交表單時要使用哪種內容類型。在表單需要二進制數據時,比如文件內容,請使用 "multipart/form-data"。

標簽的 type="file" 屬性規定了應該把輸入作為文件來處理。舉例來說,當在瀏覽器中預覽時,會看到輸入框旁邊有一個瀏覽按鈕。

注釋:允許用戶上傳文件是一個巨大的安全風險。請僅僅允許可信的用戶執行文件上傳操作。

創建上傳腳本

"upload_file.php" 文件含有供上傳文件的代碼:

if ($_files["file"]["error"] > 0)
{
echo "error: " . $_files["file"]["error"] . "
";
}
else
{
echo "upload: " . $_files["file"]["name"] . "
";
echo "type: " . $_files["file"]["type"] . "
";
echo "size: " . ($_files["file"]["size"] / 1024) . " kb
";
echo "stored in: " . $_files["file"]["tmp_name"];
}
?>

通過使用 php 的全局數組 $_files,你可以從客戶計算機向遠程伺服器上傳文件。

第一個參數是表單的 input name,第二個下標可以是 "name", "type", "size", "tmp_name" 或 "error"。就像這樣:

$_files["file"]["name"] - 被上傳文件的名稱
$_files["file"]["type"] - 被上傳文件的類型
$_files["file"]["size"] - 被上傳文件的大小,以位元組計
$_files["file"]["tmp_name"] - 存儲在伺服器的文件的臨時副本的名稱
$_files["file"]["error"] - 由文件上傳導致的錯誤代碼

這是一種非常簡單文件上傳方式。基於安全方面的考慮,您應當增加有關什麼用戶有權上傳文件的限制。

上傳限制

在這個腳本中,我們增加了對文件上傳的限制。用戶只能上傳 .gif 或 .jpeg 文件,文件大小必須小於 20 kb:


if ((($_files["file"]["type"] == "image/gif")
|| ($_files["file"]["type"] == "image/jpeg")
|| ($_files["file"]["type"] == "image/pjpeg"))
&& ($_files["file"]["size"] < 20000))
{
if ($_files["file"]["error"] > 0)
{
echo "error: " . $_files["file"]["error"] . "
";
}
else
{
echo "upload: " . $_files["file"]["name"] . "
";
echo "type: " . $_files["file"]["type"] . "
";
echo "size: " . ($_files["file"]["size"] / 1024) . " kb
";
echo "stored in: " . $_files["file"]["tmp_name"];
}
}
else
{
echo "invalid file";
}

?>

注釋:對於 ie,識別 jpg 文件的類型必須是 pjpeg,對於 firefox,必須是 jpeg。

保存被上傳的文件

上面的例子在伺服器的 php 臨時文件夾創建了一個被上傳文件的臨時副本。

這個臨時的復制文件會在腳本結束時消失。要保存被上傳的文件,我們需要把它拷貝到另外的位置:

if ((($_files["file"]["type"] == "image/gif")
|| ($_files["file"]["type"] == "image/jpeg")
|| ($_files["file"]["type"] == "image/pjpeg"))
&& ($_files["file"]["size"] < 20000))
{
if ($_files["file"]["error"] > 0)
{
echo "return code: " . $_files["file"]["error"] . "
";
}
else
{
echo "upload: " . $_files["file"]["name"] . "
";
echo "type: " . $_files["file"]["type"] . "
";
echo "size: " . ($_files["file"]["size"] / 1024) . " kb
";
echo "temp file: " . $_files["file"]["tmp_name"] . "
";

if (file_exists("upload/" . $_files["file"]["name"]))
{
echo $_files["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_files["file"]["tmp_name"],
"upload/" . $_files["file"]["name"]);
echo "stored in: " . "upload/" . $_files["file"]["name"];
}
}
}
else
{
echo "invalid file";
}
?>

上面的腳本檢測了是否已存在此文件,如果不存在,則把文件拷貝到指定的文件夾。

⑤ php上傳圖片到伺服器的前端和php代碼

require_once('../classfile/guid.class.php');

if(!isset($_files['imgfile'])){
echojson_encode(array("success"=>false,'msg'=>"notgetimgfile"));
return;
}
$upfile=$_files['imgfile'];
$name=$upfile["name"];//上傳文件的文件名
$type=$upfile["type"];//上傳文件的類型
$size=$upfile["size"];//上傳文件的大小
$tmp_name=$upfile["tmp_name"];//上傳文件的臨時存放路徑
$error_cod=$upfile["error"];
if($error_cod>0){
echojson_encode(array("success"=>false,'msg'=>$error_cod));
}

$ext_file_name="";

switch($type){
case'image/pjpeg':
$oktype=true;
$ext_file_name =".jpg";
break;
case'image/jpeg':
$oktype=true;
$ext_file_name =".jpg";
break;
case'image/gif':
$oktype=true;
$ext_file_name =".gif";
break;
case'image/png':
$oktype=true;
$ext_file_name =".png";
break;
}

if(!$oktype){
echojson_encode(array("success"=>false,'msg'=>"notimage"));
return;
}
$web_root="d:".directory_separator."easy2php5".directory_separator."websitejfz".directory_separator;

$photo_tmp_path=$web_root."img".directory_separator."userimg".directory_separator."temp";
$temp_file_name=creat_guid(0).$ext_file_name;
$photo_tmp_file_name=$photo_tmp_path.directory_separator.$temp_file_name;
$photo_tmp_file_scr="img".directory_separator."userimg".directory_separator."temp".directory_separator.$temp_file_name;
move_uploaded_file($tmp_name,$photo_tmp_file_name);


echojson_encode(array("success"=>true,'msg'=>"ok","file_name"=>$photo_tmp_file_name,"file_scr"=>$photo_tmp_file_scr));

//echojson_encode(array("success"=>false,'msg'=>json_encode($_files['imgfile'])));
return;

?>

guid.class.php//生成唯一的圖片文件名
functioncreat_guid($long){
$uuid="";
if(function_exists('com_create_guid')){
$uuid=com_create_guid();
}else{
mt_srand((double)microtime()*10000);//optionalforphp4.2.0anp.
$charid=strtoupper(md5(uniqid(rand(),true)));
$hyphen=chr(45);//"-"
$uuid=chr(123)//"{"
.substr($charid,0,8).$hyphen
.substr($charid,8,4).$hyphen
.substr($charid,12,4).$hyphen
.substr($charid,16,4).$hyphen
.substr($charid,20,12)
.chr(125);//"}"
//return$uuid;
}
if(!isset($long)||$long==0){
returnsubstr($uuid,1,strlen($uuid)-2);
}else{
return$uuid;
}
}

⑥ php 實現上傳圖片至伺服器的函數



用php上傳時,需要對內容作詳細的檢查,例如是否容許讀寫文件,文件格式、文件大小是否在你指定的大小內等。


$file_size_max = 1000000;

// 限制文件上傳最大容量(bytes)

$store_dir = "/public/www/upload/";

// 上傳文件的儲存位置

$accept_overwrite = true;

//允許讀寫文件

// 檢查文件大小

if ($upload_file_size > $file_size_max) {

echo "對不起,你的文件容量大於規定";

exit;

}

// 檢查讀寫文件

if (file_exists($store_dir . $upload_file_name) &&&& !$accept_overwrite) {

echo "文件已存在,不能再復制";

exit;

}

//復制文件到指定目錄

if (! @ ($upload_file,$store_dir . $upload_file_name)) {

echo "復制文件失敗";

exit;

}

echo "上傳文件完成";
?>

⑦ php文件上傳,如何實現獨立的圖片伺服器的,該move_uploaded_file()函數能實現嗎

可以的。圖片也是文件的一種形式,主要上傳的時候注意限制文件的後綴為.jpg,.png等等,並使用move_uploaded_file把圖片轉蔽早移到伺服器中一個特定的文件夾中。為了方便集中管理這些圖片,可以建立一個資料庫,用一個數據表記錄該圖片的路徑、名余消稱、上傳日期、格式等等信息。訪問圖像的時候,就可以根據圖片的路徑豎並知獲得了。

⑧ php怎麼把圖片數據保存為jpg圖片到伺服器目錄

  1. 第一步:通過$_files獲取文件信息。

  2. 第二步:指定新文件名稱以及路徑,並賦值給一個變數。

  3. 第三步:通過move_uploaded_file上傳文件。

  4. 第四步:上傳成功後,將數值存入資料庫伺服器目錄即可。

  • 代碼如下

1.conn.php


$host="localhost";//資料庫伺服器名稱
$user="root";//用戶名
$pwd="1721";//密碼
$conn=mysql_connect($host,$user,$pwd);
mysql_query("set
character_set_connection=gb2312,
character_set_results=gb2312,
character_set_client=binary",$conn);

if($conn==false)
{
echo"
伺服器連接失敗!
請刷新後重試。
";
returntrue;
}
$databasename="database";//資料庫名稱

do
{
$con=mysql_select_db($databasename,$conn);
}while(!$con);

if($con==false)
{
echo"
打開資料庫失敗!
請刷新後重試。
";
returntrue;
}

?>

2.upload.php


if($_get['action']=="save"){
include_once('conn.php');
include_once('uploadclass.php');
$title=$_post['title'];
$pic=$uploadfile;
if($title=="")
echo"";
$sql="insertintoupload(title,pic)values('$title','$pic')";
$result=mysql_query($sql,$conn);
//echo"";
}
?>


文件上傳實例










標題:



文件:












3.uploadclass.php

$uploaddir="upfiles/";//設置文件保存目錄注意包含/
$type=array("jpg","gif","bmp","jpeg","png");//設置允許上傳文件的類型
$patch="upload/";//程序所在路徑

//獲取文件後綴名函數
functionfileext($filename)
{
returnsubstr(strrchr($filename,'.'),1);
}
//生成隨機文件名函數
functionrandom($length)
{
$hash='cr-';
$chars='';
$max=strlen($chars)-1;
mt_srand((double)microtime()*1000000);
for($i=0;$i<$length;$i )
{
$hash.=$chars[mt_rand(0,$max)];
}
return$hash;
}

$a=strtolower(fileext($_files['file']['name']));
//判斷文件類型
if(!in_array(strtolower(fileext($_files['file']['name'])),$type))
{
$text=implode(",",$type);
echo"您只能上傳以下類型文件:",$text,"
";
}
//生成目標文件的文件名
else{
$filename=explode(".",$_files['file']['name']);
do
{
$filename[0]=random(10);//設置隨機數長度
$name=implode(".",$filename);
//$name1=$name.".mcncc";
$uploadfile=$uploaddir.$name;
}

while(file_exists($uploadfile));

if(move_uploaded_file($_files['file']['tmp_name'],$uploadfile))
{
if(is_uploaded_file($_files['file']['tmp_name']))
{

echo"上傳失敗!";
}
else
{//輸出圖片預覽
echo"
您的文件已經上傳完畢上傳圖片預覽:

";
echo"
繼續上傳
";
}
}

}
?>

⑨ thinkphp3.2.3 上傳圖片到ftp,同時生成縮略圖。

thinkphp上傳文件類:

$upload = new thinkupload($config);// 實例化上傳類

使用這個。

如要處理圖片大小。需要另外調用圖像處理:

裁剪圖片

$image=newthinkimage();
$image->open('./1.jpg');
//將圖片裁剪為400x400並保存為corp.jpg
$image->crop(400,400)->save('./crop.jpg');
居中裁剪
$image=newthinkimage();
$image->open('./1.jpg');
//生成一個居中裁剪為150*150的縮略圖並保存為thumb.jpg
$image->thumb(150,150,thinkimage::image_thumb_center)->save('./thumb.jpg');
熱點內容
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:374
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:954
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:129
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:386
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
androidapk結構 發布:2024-07-17 15:10:43 瀏覽:945
c語言指針的例子 發布:2024-07-17 15:08:01 瀏覽:768
linuxzcat 發布:2024-07-17 15:02:09 瀏覽:901
賓士編程嗎 發布:2024-07-17 14:57:08 瀏覽:853
硬碟加密硬體 發布:2024-07-17 14:51:05 瀏覽:836
网站地图