⑴ 如何使用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使用ftp_put上傳圖片出錯問題 圖片是上傳成功了,但是一個空白文件,為什麼為出現這狀況
你貼的代碼都是變數,實在很難確定你的錯誤到底在哪裡,希望你最好能夠貼出具體的代碼,因為這個可能是你路徑問題,或者是連接問題,也可能是轉換目錄問題。
下面是我寫的能夠成功完成文件上傳ftp的代碼,僅供參考。
<?php
$conn = ftp_connect("192.168.1.104") or die ("error");
ftp_login($conn, "benzlee", "123456");
ftp_chdir($conn, "folder");
$upload = ftp_put($conn, "test.jpg", "D:\\123.jpg", FTP_BINARY);
if($upload)
{
echo 1;
ftp_close($conn);
}
else
{
die("上傳圖片失敗------" . "D:\\123.jpg");
}
希望對你有幫助,有什麼不明白的,我盡量幫忙,謝謝^^
⑶ php為什麼上傳圖片會失敗
一般來說,可以通過報錯來解決或者說找到問題,但你只有一個標題,所以不知道什麼錯,無法給出具體解決方法,但一般來說會從以下幾個點入手:
1、檢查文件大小,是否有做這個限制,apache默認應該是2M的
2、檢查圖片保存路徑,是否有寫入許可權
3、查看代碼,是否有寫錯上傳代碼
先定位到錯誤的位置,就好解決問題了
⑷ php中使用fopen和fread上傳二進制圖片失敗,請問哪裡有問題急!
$tpmc=str_replace(""," ",$tpmc); //將圖片名稱中的空格以" "取代
$author=$_SESSION['admin'];
$scsj=date("y;m;d"); //設置圖片的上傳時間
$fp=fopen($file,"r"); //以只讀方式打開文件
$file=addslashes(fread($fp,filesize($file)));//將文件中的引號部分加上反斜線
改為
$file=str_replace(""," ",$tpmc); //將圖片名稱中的空格以" "取代
$author=$_SESSION['admin'];
$scsj=date("y;m;d"); //設置圖片的上傳時間
$fp=fopen($file,"r"); //以只讀方式打開文件
$file=addslashes(fread($fp,filesize($file)));//將文件中的引號部分加上反斜線
$file 得有值呀,把 $file=str_replace(""," ",$tpmc); 改了試試,應該就好了