『壹』 如何使用php中ftp函數上傳文件以及解決上傳文件失敗的方法
因為系統重構實現均衡負載,網站程序與文件伺服器不在一台機子上。於是,程序在上傳文件的同時就要將文件上傳到文件伺服器上。
這里涉及到windows主機上傳到linux主機,linux主機上傳到linux主機。這兩個之間呢,只是稍微的有點區別,因為windows的路徑可以兼容linux路徑,但是linux的路徑不兼容windows主機'\\'的寫法。所以,在寫路徑的時候稍加註意即可。
下面,就列舉上面兩種情況php中使用ftp函數上傳文件的具體實現代碼。
一、 ftp上傳圖片參數說明。
$source:本機圖片完整的路徑。(/a/b/c.jpg)
$des :上傳目標linux主機完整的路徑。
$ftp_server:ftp地址
$ftp_user_name:ftp用戶名
$ftp_user_pass: ftp密碼
$port:埠
二、如何使用php中ftp函數上傳文件的方法
例如:
本地地址為:/a/b/c.jpg
目標地址為:/d/a/b/c.jpg
2.1、linux主機上傳linux主機。
function ftpSendFile($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)
{
// 此步驟是在於上傳目錄與本機的目錄不一致轉換使用
$des = "/d" . $des;
$conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server");
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, TRUE);
$ftp_folder = dirname($des);
$dir = explode("/", $ftp_folder);
$path = "";
for ($i = 0; $i < count($dir); $i++) {
$path .= "/" . $dir[$i];
if (!ftp_chdir($conn_id, $path)) {
$result = ftp_mkdir($conn_id, $path);
}
}
if (ftp_put($conn_id, $des, $source, FTP_BINARY)) {
return 1;
} else {
return 0;
}
ftp_close($conn_id);
}
2、windows主機上傳linux主機。
function sendPic($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)
{
$des = "/d" . $des;
$conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server");
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, TRUE);
$ftp_folder = dirname(str_ireplace('\\', '/', $des));
$dir = explode("/", $ftp_folder);
$path = "";
for ($i = 0; $i < count($dir); $i++) {
$path .= "/" . $dir[$i];
if (!ftp_chdir($conn_id, $path)) {
$result = ftp_mkdir($conn_id, $path);
}
}
if (ftp_put($conn_id, str_ireplace('\\', '/', $des), $source, FTP_BINARY)) {
return 1;
} else {
return 0;
}
ftp_close($conn_id);
}
上面的兩種使用php中ftp函數上傳文件的方法基本可以滿足正常的使用。
『貳』 php文件上傳,如何實現獨立的圖片伺服器的,該move_uploaded_file()函數能實現嗎
可以的。圖片也是文件的一種形式,主要上傳的時候注意限制文件的後綴為.jpg,.png等等,並使用move_uploaded_file把圖片轉移到伺服器中一個特定的文件夾中。為了方便集中管理這些圖片,可以建立一個資料庫,用一個數據表記錄該圖片的路徑、名稱、上傳日期、格式等等信息。訪問圖像的時候,就可以根據圖片的路徑獲得了。
『叄』 php文件上傳 move_uploaded_file()函數上傳,文件名帶點出錯,
移動文件上到伺服器。
希望我的回答可以幫到你,有什麼不懂可以追問。
『肆』 如何用php語言調用ftp_put函數上傳文件
直接FTP方式,使用不太方便。
需要用戶ftp方式將自己的文件上傳到伺服器,再將ftp空間的文件名填在文本框中,這樣php程序就能夠在伺服器上上取到ftp上傳的文件,拷貝到系統存儲空間。這樣做的優點是可以傳送比較大的文件。
『伍』 php上傳函數問題
這么多的錯誤提示,文件肯定上傳失敗了。你先把錯誤都解決了先啊 。而且我看你這個文件上傳代碼並不完整,而且關鍵代碼一句都沒。你還是重新再找一個吧
『陸』 如何使用php中ftp函數上傳文件以及解決上傳文件失敗的方法
一、 ftp上傳圖片參數說明。
1 $source:本機圖片完整的路徑。(/a/b/c.jpg)
2 $des :上傳目標linux主機完整的路徑。
3 $ftp_server:ftp地址
4 $ftp_user_name:ftp用戶名
5 $ftp_user_pass: ftp密碼
6 $port:埠
二、如何使用php中ftp函數上傳文件的方法
例如:
本地地址為:/a/b/c.jpg
目標地址為:/d/a/b/c.jpg
2.1、linux主機上傳linux主機。
01 function ftpSendFile($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)
02 {
03 // 此步驟是在於上傳目錄與本機的目錄不一致轉換使用
04 $des = "/d" . $des;
05 $conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server");
06 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
07 ftp_pasv($conn_id, TRUE);
08 $ftp_folder = dirname($des);
09 $dir = explode("/", $ftp_folder);
10 $path = "";
11 for ($i = 0; $i < count($dir); $i++) {
12 $path .= "/" . $dir[$i];
13 if (!ftp_chdir($conn_id, $path)) {
14 $result = ftp_mkdir($conn_id, $path);
15 }
16 }
17 if (ftp_put($conn_id, $des, $source, FTP_BINARY)) {
18 return 1;
19 } else {
20 return 0;
21 }
22 ftp_close($conn_id);
23 }
2.2、windows主機上傳linux主機。
01 function sendPic($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)
02 {
03 $des = "/d" . $des;
04 $conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server");
05 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
06 ftp_pasv($conn_id, TRUE);
07 $ftp_folder = dirname(str_ireplace('\\', '/', $des));
08 $dir = explode("/", $ftp_folder);
09 $path = "";
10 for ($i = 0; $i < count($dir); $i++) {
11 $path .= "/" . $dir[$i];
12 if (!ftp_chdir($conn_id, $path)) {
13 $result = ftp_mkdir($conn_id, $path);
14 }
15 }
16 if (ftp_put($conn_id, str_ireplace('\\', '/', $des), $source, FTP_BINARY)) {
17 return 1;
18 } else {
19 return 0;
20 }
21 ftp_close($conn_id);
22 }
上面的兩種使用php中ftp函數上傳文件的方法基本可以滿足正常的使用。
『柒』 php文件上傳使用了哪些函數
//定義上傳目錄變數
$upath="./upload/";
//獲取上傳文件信息
$fupload=$_FILES['image'];
//定義上傳的文件類型
$imgtype=array("image/jpeg","image/jpg","image/png","image/gif","image/bmp");
//獲取php.ini文件upload_max_filesize的大小
$umfs=ini_get("upload_max_filesize");
//獲取html表單post文件大小
$pms=ini_get("post_max_size");
//獲取上傳文件錯誤信息
if($fupload["error"]>0){
switch($fupload["error"]){
case 1:
$errmsg="上傳的文件的大小超過了".$umfs;
break;
case 2:
$errmsg="上傳的文件的大小超過了HTML表單中".$pms."的限制";
break;
case 3:
$errmsg="文件只有部分被上傳";
break;
case 4:
$errmsg="沒有選擇上傳文件";
break;
case 6:
$errmsg="找不到臨時文件夾";
break;
case 7:
$errmsg="文件寫入失敗";
break;
}
die("上傳錯誤:".$errmsg);
}
//過濾上傳文件的大小
if($fupload["size"]>100000000){
die("上傳文件的大小超出了限制");
}
//過濾上傳的文件類型
if(!in_array($fupload["type"],$imgtype)){
die("不支持上傳的文件類型:".$fupload["type"]);
}
//執行上傳文件
if(is_uploaded_file($fupload["tmp_name"])){
if(move_uploaded_file($fupload["tmp_name"],$upath.$fupload["name"])){
echo "文件上傳成功!";
}
}else{
die("不是一個上傳文件!");
}
『捌』 php 編寫 實現上傳圖片至伺服器的函數
php上傳圖片客戶端和伺服器端實現方法分享給大家供大家參考。具體如下:
前台表單代碼
<form name="form1" method="post" action="admin_upfile.php" enctype="multipart/form-data">
<input type="file" name="pic">
<input type="submit" name="Submit" value="開始上傳" class="button">
</form>
後端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 "<script>alert('只能上傳圖片格式的文件');window.close()</script>";
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 實現上傳圖片至伺服器的函數
<form method=post action="upload.php" ENCTYPE="multipart/form-data">
<input type="file" name="upload_file">
<input type="submit" name="submit" value="上傳文件">
用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中文件上傳的函數是什麼
php文件上傳看使用from表單提交方式,然後通過$_POST函數獲取到文件信息。