當前位置:首頁 » 文件管理 » php上傳文件實例

php上傳文件實例

發布時間: 2024-04-12 20:56:39

㈠ 關於php實現文件上傳

php的文件上傳機制是把用戶上傳的文件保存在php.ini的upload_tmp_dir定義的臨時目錄(默認是系統的臨時目錄,如:/tmp)里的一個類似phpxXuoXG的隨機臨時文件,程序執行結束,該臨時文件也被刪除。PHP給上傳的文件定義了四個變數:(如form變數名是file,而且register_globals打開)

$file #就是保存到伺服器端的臨時文件(如/tmp/phpxXuoXG )

$file_size #上傳文件的大小

$file_name #上傳文件的原始名稱

$file_type #上傳文件的類型

推薦使用:

$_FILES['file']['tmp_name']

$_FILES['file']['size']

$_FILES['file']['name']

$_FILES['file']['type']

㈡ php上傳文件,創建遞歸目錄的實例代碼

復制代碼
代碼如下:
<?php
$uid=$_REQUEST['uid'];
$avatar
=
'D:/avic/discuz/uc_server/data/avatar/'.get_avatar($uid,
$size,
$type);
$dir=dirname($avatar);
//創建目錄成功後移動臨時文件
if(mkdirs($dir)){
if($_FILES["pic"]["error"]
>=
0){
if(move_uploaded_file($_FILES['pic']['tmp_name'],$avatar)){
$errorcode=1;
}else{
$errorcode=0;
$errormsg="文件移動失敗";
}
}else{
$errorcode=0;
$errormsg=$_FILES['pic']['error'];
}
}
$back=array("errorcode"=>$errorcode,'errormsg'=>$errormsg);
echo
json_encode($back);
//返回圖片要存儲的路徑
function
get_avatar($uid,
$size
=
'middle',
$type
=
'')
{
$size
=
in_array($size,
array('big',
'middle',
'small'))
?
$size
:
'middle';
$uid
=
abs(intval($uid));
$uid
=
sprintf("%09d",
$uid);
$dir1
=
substr($uid,
0,
3);
$dir2
=
substr($uid,
3,
2);
$dir3
=
substr($uid,
5,
2);
$typeadd
=
$type
==
'real'
?
'_real'
:
'';
return
$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid,
-2).$typeadd."_avatar_$size.jpg";
}
//遞歸創建目錄,若傳的$dir不是絕對路徑,則會和運行此方法的目錄同級
function
mkdirs($dir){
if(!is_dir($dir)){
if(!mkdirs(dirname($dir))){
return
false;
}
if(!mkdir($dir,0777)){
return
false;
}
}
return
true;
}
?>

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

創建一個文件上傳表單

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

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

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

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

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

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

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

創建上傳腳本

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

<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
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:

<?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 "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}

?>

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

保存被上傳的文件

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

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

<?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"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

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如何把一些文件和圖片上傳到另一指定的伺服器

一個實例:

首先,在自己台式機和筆記本上都開通了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);
}

對應的前台頁面代碼:

<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文件上傳,提示移動文件失敗

php文件上傳,提示移動文件失敗,基本是上傳保存的目錄不可寫造成的,需要好好設置一下,下面是一個PHP文件上傳的簡單例子,僅作參考:


<formaction=""enctype="multipart/form-data"method="post"
name="uploadfile">上傳文件:<inputtype="file"name="upfile"/><br>
<inputtype="submit"value="上傳"/></form>
<?php
//print_r($_FILES["upfile"]);
if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
$upfile=$_FILES["upfile"];
//獲取數組裡面的值
$name=$upfile["name"];//上傳文件的文件名
$type=$upfile["type"];//上傳文件的類型
$size=$upfile["size"];//上傳文件的大小
$tmp_name=$upfile["tmp_name"];//上傳文件的臨時存放路徑
//判斷是否為圖片
switch($type){
case'image/pjpeg':$okType=true;
break;
case'image/jpeg':$okType=true;
break;
case'image/gif':$okType=true;
break;
case'image/png':$okType=true;
break;
}
if($okType){
/**
*0:文件上傳成功<br/>
*1:超過了文件大小,在php.ini文件中設置<br/>
*2:超過了文件的大小MAX_FILE_SIZE選項指定的值<br/>
*3:文件只有部分被上傳<br/>
*4:沒有文件被上傳<br/>
*5:上傳文件大小為0
*/
$error=$upfile["error"];//上傳後系統返回的值
echo"================<br/>";
echo"上傳文件名稱是:".$name."<br/>";
echo"上傳文件類型是:".$type."<br/>";
echo"上傳文件大小是:".$size."<br/>";
echo"上傳後系統返回的值是:".$error."<br/>";
echo"上傳文件的臨時存放路徑是:".$tmp_name."<br/>";
echo"開始移動上傳文件<br/>";
//把上傳的臨時文件移動到up目錄下面
move_uploaded_file($tmp_name,'up/'.$name);
$destination="up/".$name;
echo"================<br/>";
echo"上傳信息:<br/>";
if($error==0){
echo"文件上傳成功啦!";
echo"<br>圖片預覽:<br>";
echo"<imgsrc=".$destination.">";
//echo"alt="圖片預覽: 文件名:".$destination." 上傳時間:">";
}elseif($error==1){
echo"超過了文件大小,在php.ini文件中設置";
}elseif($error==2){
echo"超過了文件的大小MAX_FILE_SIZE選項指定的值";
}elseif($error==3){
echo"文件只有部分被上傳";
}elseif($error==4){
echo"沒有文件被上傳";
}else{
echo"上傳文件大小為0";
}
}else{
echo"請上傳jpg,gif,png等格式的圖片!";
}
}
?>

㈥ 多文件上傳php怎麼寫

方法一:當多文件上傳表單中多個上傳文件的name屬性為「pic[]」形式時,也即表單為這種形式。
HTML代碼:
1<formaction=""method="post"enctype="multipart/form-data">
2<inputtype="hidden"name="MAX_FILE_SIZE"value="">
3<inputtype="file"name="pic[]"/><br><br>
4<inputtype="file"name="pic[]"/><br><br>
5<inputtype="file"name="pic[]"/><br><br>
6<inputtype="file"name="pic[]"/><br><br>
7<inputtype="submit"value="upload"/>
8</form>
PHP代碼:
01<?php
02//1.獲取要上傳文件的信息
03$up_info=$_FILES['pic'];
04
05$ob_path="../system";
06
07$typelist=array("image/gif","image/jpeg","image/pjpeg","image/png");//定義運行的上傳文件類型
08
09
10for($i=0;$i<count($up_info['name']);$i++){//foreach循環處理多個文件上傳
11//2.判斷文件是否上傳錯誤
12
13if($up_info['error'][$i]>0){
14switch($up_info['error'][$i]){
15case1:
16$err_info="上傳的文件超過了php.ini中upload_max_filesize選項限制的值";
17break;
18case2:
19$err_info="上傳文件的大小超過了HTML表單中MAX_FILE_SIZE選項指定的值";
20break;
21case3:
22$err_info="文件只有部分被上傳";
23break;
24case4:
25$err_info="沒有文件被上傳";
26break;
27case6:
28$err_info="找不到臨時文件夾";
29break;
30case7:
31$err_info="文件寫入失敗";
32break;
33default:
34$err_info="未知的上傳錯誤";
35break;
36}
37continue($err_info);
38}
39
40
41//3.判斷文件上傳的類型是否合法
42
43if(!in_array($up_info['type'][$i],$typelist)){
44continue('文件類型錯誤!'.$up_info['type'][$i]);
45}
46
47//4.上傳文件的大小過濾
48
49if($up_info['size'][$i]>1000000){
50continue('文件大小超過1000000');
51}
52
53
54//5.上傳文件名處理
55
56$exten_name=pathinfo($up_info['name'][$i],PATHINFO_EXTENSION);
57
58do{
59$main_name=date('YmHis'.'--'.rand(100,999));
60$new_name=$main_name.'.'.$exten_name;
61}while(file_exists($to_path.'/'.$new_name));
62
63
64
65//6.判斷是否是上傳的文件,並執行上傳
66
67if(is_uploaded_file($up_info['tmp_name'][$i])){
68
69if(move_uploaded_file($up_info['tmp_name'][$i],$ob_path.'/'.$new_name)){
70echo'文件上傳成功!';
71}else{
72echo'上傳文件移動失敗!';
73}
74}else{
75echo'文件不是上傳的文件';
76}
77
78}//for循環的括弧
方法二:當多文件上傳表單中多個上傳文件的name屬性為「pic,text,doc,pdf」形式時
也即表單為這種形式:
1<formaction=""method="post"enctype="multipart/form-data">
2<inputtype="hidden"name="MAX_FILE_SIZE"value="">
3<inputtype="file"name="pic"/><br><br>
4<inputtype="file"name="text"/><br><br>
5<inputtype="file"name="doc"/><br><br>
6<inputtype="file"name="pdf"/><br><br>
7
8<inputtype="submit"value="upload"/>
9</form>
01//1.獲取要上傳文件的信息
02$up_info=$_FILES;
03
04$ob_path="..system";
05
06$typelist=array("image/gif","image/jpeg","image/pjpeg","image/png");//定義運行的上傳文件類型
07
08
09
10foreach($up_infoas$k_name=>$value){//用foreach循環處理多個文件的上傳
11//2.判斷文件是否上傳錯誤
12
13if($up_info[$k_name]['error']>0){
14switch($up_info['error'][$i]){
15case1:
16$err_info="上傳的文件超過了php.ini中upload_max_filesize選項限制的值";
17break;
18case2:
19$err_info="上傳文件的大小超過了HTML表單中MAX_FILE_SIZE選項指定的值";
20break;
21case3:
22$err_info="文件只有部分被上傳";
23break;
24case4:
25$err_info="沒有文件被上傳";
26break;
27case6:
28$err_info="找不到臨時文件夾";
29break;
30case7:
31$err_info="文件寫入失敗";
32break;
33default:
34$err_info="未知的上傳錯誤";
35break;
36}
37continue($err_info);
38}
39
40
41//3.判斷文件上傳的類型是否合法
42
43if(!in_array($up_info[$k_name]['type'],$typelist)){
44continue('文件類型錯誤!'.$up_info[$k_name]['type']);
45}
46
47//4.上傳文件的大小過濾
48
49if($up_info[$k_name]['size']>100000){
50echo'文件大小超過**';
51continue;
52}
53
54
55//5.上傳文件名處理
56
57$exten_name=pathinfo($up_info[$k_name]['name'],PATHINFO_EXTENSION);
58
59do{
60$main_name=date('YmHis'.'--'.rand(100,999));
61$new_name=$main_name.'.'.$exten_name;
62}while(file_exists($to_path.'/'.$new_name));
63
64
65//6.判斷是否是上傳的文件,並執行上傳
66
67if(is_uploaded_file($up_info[$k_name]['tmp_name'])){
68
69if(move_uploaded_file($up_info[$k_name]['tmp_name'],$ob_path.'/'.$new_name)){
70echo'文件上傳成功!';
71}else{
72echo'上傳文件移動失敗!';
73}
74}else{
75echo'文件不是上傳的文件';
76}
77
78}//for循環的括弧
方法三:先定義單個文件上傳的函數,再循環調用這個函數,每次傳入一個文件的上傳信息,也可以到達多文件上傳的目的,而且這種方式,更容易理解。
1<formaction=""method="post"enctype="multipart/form-data">
2<inputtype="hidden"name="MAX_FILE_SIZE"value="">
3<inputtype="file"name="pic1"><br>
4<inputtype="file"name="pic2"><br>
5<inputtype="file"name="pic3"><br>
6<inputtype="submit"value="upload">
7</form>
001/*
002*單文件上傳函數
003*@paramarray$up_info記錄上傳文件信息的超全局數組
004*@paramstring$to_path上傳文件的目標路徑
005*@paramarray$typlist允許的文件類型
006*@paramint$file_size允許的文件大小
007*@returnstring上傳失敗,返回失敗的原因,
008*http://yige.org/php/
009*成功返回包括文件名的路徑。
010*/
011
012
013functionupload_fun($up_info,$to_path,$typelist=array(),$file_size=2000000){
014
015//1.判斷文件上傳是否錯誤
016
017if($up_file['error']>0){
018switch($up_info['error']){
019case1:
020$err_info="上傳的文件超過了php.ini中upload_max_filesize選項限制的值";
021break;
022case2:
023$err_info="上傳文件的大小超過了HTML表單中MAX_FILE_SIZE選項指定的值";
024break;
025case3:
026$err_info="文件只有部分被上傳";
027break;
028case4:
029$err_info="沒有文件被上傳";
030break;
031case6:
032$err_info="找不到臨時文件夾";
033break;
034case7:
035$err_info="文件寫入失敗";
036break;
037default:
038$err_info="未知的上傳錯誤";
039break;
040}
041
042return$err_info;
043die();
044}
045
046
047//2.判斷上傳文件類型是否合法
048
049if(count($typelist)>0){
050if(!in_array($up_info['type'],$typelist)){
051
052$err_info='文件類型不合法!'.$up_info['type'];
053return$err_info;
054die();
055}
056}
057
058//4.判斷上傳文件大小是否超出允許值
059
060if($up_info['size']>$file_size){
061
062return$err_info='文件大小超過'.$file_size;
063die();
064}
065
066//5.上傳文件重命名
067
068$exten_name=pathinfo($up_info['name'],PATHINFO_EXTENSION);
069
070do{
071$main_name=date('YmHis'.'--'.rand(100,999));
072$new_name=$main_name.'.'.$exten_name;
073}while(file_exists($to_path.'/'.$new_name));
074
075//6.判斷是否是上傳的文件,並移動文件
076
077if(is_uploaded_file($up_info['tmp_name'])){
078
079if(move_uploaded_file($up_info['tmp_name'],$to_path.'/'.$new_name)){
080
081$err_info=$to_path.'/'.$new_name;
082return$err_info;
083die();
084}else{
085
086return$err_info='上傳文件移動失敗!';
087die();
088
089}
090}else{
091
092return$err_info='這個文件不是上傳文件!';
093die();
094}
095
096}
097
098//函數使用方法如下
099
100$multi_info=$_FILES;//接收$_FILES的全部上傳信息
101
102$to_path='system';//上傳文件的目標路徑
103
104foreach($multi_infoas$name=>$up_info){//foreach遍歷$multi_info
105
106$err_info=upload_fun($up_info,$to_path);//調用單文件上傳函數
107
108p($err_info);//輸出返回信息;
109
110}

㈦ 如何使用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函數上傳文件的方法基本可以滿足正常的使用。

熱點內容
遺傳演算法圖像分割 發布:2024-05-03 03:16:27 瀏覽:800
外圓圓弧怎麼編程 發布:2024-05-03 03:13:59 瀏覽:212
如何在conda中安裝需要編譯的軟體 發布:2024-05-03 02:41:21 瀏覽:780
易語言垃圾清理源碼 發布:2024-05-03 02:40:34 瀏覽:182
滴滴蘋果安卓哪個派單量好 發布:2024-05-03 02:22:52 瀏覽:289
lua編程pdf 發布:2024-05-03 01:39:26 瀏覽:24
臍帶血存儲的三大忌 發布:2024-05-03 01:32:38 瀏覽:934
寶馬可編程 發布:2024-05-03 01:32:20 瀏覽:226
匿名ftp的作用 發布:2024-05-03 01:30:13 瀏覽:420
php支付程序 發布:2024-05-03 01:07:09 瀏覽:287