昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2008-07-09, 12:10:57
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: 為增進論壇品質,全面更新硬體設備,經費有限,請各位踴躍贊助論壇!!


+  麻辣家族討論區
|-+  網頁設計
| |-+  PHP
| | |-+  檔案上傳的問題
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 向下 列印
作者 主題: 檔案上傳的問題  (閱讀 1835 次)
taocenter
訪客


電子郵件
檔案上傳的問題
« 於: 2005-05-08, 22:10:45 »

我想請問在楊宗誌寫的「PHP+IIS+SQL Server網站資料庫徹底研究」中的第十三章的檔案上傳的問題
在13-4頁中的倒數第三行說:「上傳檔案的存放位置,也就是放置上傳檔案的目錄資料夾,其寫入的權限必須打開,......」
請問要如何將目錄資料夾寫入的權限打開?
我執行檔案上傳的範例程式時,出現錯誤,檔案並沒有上傳,我猜可能是寫入的權限沒有打開的原因
執行範例程式時,出現的錯誤訊息如下:

上傳檔案相關資訊:
--------------------------------------------------------------------------------

檔案名稱:test.txt
檔案大小:4
檔案類型:text/plain
暫存檔名:C:\PHP\uploadtemp\php3D.tmp

Warning: move_uploaded_file(file\test.txt) [function.move-uploaded-file]: failed to create stream: No such file or directory in D:\Web\mygetfilen.php on line 14

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\PHP\uploadtemp\php3D.tmp' to 'file\test.txt' in D:\Web\mygetfilen.php on line 14
您所上傳的檔案已儲存為 test.txt
--------------------------------------------------------------------------------
已記錄
小誌
論壇管理員
*
離線 離線

會員性別: 男
文章: 589



個人網站
Re: 檔案上傳的問題
« 回覆文章 #1 於: 2005-05-08, 22:44:24 »

引用
檔案名稱:test.txt
檔案大小:4
檔案類型:text/plain
暫存檔名:C:\PHP\uploadtemp\php3D.tmp
你必須先建立暫存資料夾於c磁碟,看你的錯誤提示暫存資料夾是建在C:\PHP\uploadtemp\
再建立一個存放上傳檔案的資料夾
Step1:在存放上傳的資料夾圖示上按滑鼠右鍵-->內容-->"安全性"頁籤
Step2:新增一個使用者"Everyone"
Step3:將使用者"Everyone"的寫入權限打開



若看不到安全性頁籤
在檔案總管中選取工具-->資料夾選項-->"檢視"頁籤
將"使用簡易檔案共用"的項目取消核取
« 最後編輯時間: 2005-05-08, 22:55:25 由 小誌 » 已記錄

為了論壇的永續經營,您不妨
贊 助 論 壇
taocenter
訪客


電子郵件
多檔案上傳的問題
« 回覆文章 #2 於: 2005-05-09, 09:51:09 »

請問在「PHP+IIS+SQL Server網站資料庫徹底研究中」的「多檔案上傳」的13-8頁

在「uploadm.php」中的upfile[]陣列只有三個元素,
可是在「mygetfilem.php」中的count($_FILES["upfile"])為何變成5了?


--------------------------------------------------------------------------------------
uploadm.php

<HTML><BODY>
<H3>FTP 檔案上傳:(傳送多個檔案)<HR></H3>

<Form Action="mygetfilem.php" Method="POST"
Enctype="multipart/form-data">
<Input Type="File" Name="upfile[]" >

<Input Type="File" Name="upfile[]" >

<Input Type="File" Name="upfile[]" >

<Input Type="Submit" value=" 開始上傳 ">
</Form>

</BODY></HTM>


----------------------------------------------------------------------------------------
mygetfilem.php

<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>多檔案上傳</title>
</head>
<BODY><H3>上傳多檔案相關資訊:<HR></H3>

<?
echo count($_FILES["upfile"])."<p>";
for ( $I=0; $I < (count($_FILES["upfile"])-2); $I++ )
{
  echo "<BLOCKQUOTE>";
  if ( $_FILES["upfile"]["name"][$I] <> "" )
   {
   echo "檔案名稱:" . $_FILES["upfile"]["name"][$I] . "<BR>";
   echo "檔案大小:" . $_FILES["upfile"]["size"][$I] . "<BR>";
   echo "檔案類型:" . $_FILES["upfile"]["type"][$I] . "<BR>";
   echo "暫存檔名:" . $_FILES["upfile"]["tmp_name"][$I] . "<BR>";
   //檢驗檔案大小是否大於0
   if ( $_FILES["upfile"]["size"][$I] <= 0)
   {
     echo "上傳檔案錯誤!您傳送的是空檔案!!";
     echo "</BLOCKQUOTE>";
   }
   //檢驗檔案體積是否過大
   else if ( $_FILES["upfile"]["size"][$I] > 50000)
   {
     echo "上傳檔案錯誤!您傳送的檔案大於50k!!";
     echo "</BLOCKQUOTE>";
   }
   else
   {
    move_uploaded_file($_FILES["upfile"]["tmp_name"][$I], "file\\" . $_FILES["upfile"]["name"][$I]);
     echo "您所上傳的檔案已儲存為 " . $_FILES["upfile"]["name"][$I];
    echo "</BLOCKQUOTE>";
   }
   }
}
?>

<HR></BODY></HTML>
已記錄
小誌
論壇管理員
*
離線 離線

會員性別: 男
文章: 589



個人網站
Re: 檔案上傳的問題
« 回覆文章 #3 於: 2005-05-09, 14:07:31 »

問的好!! Afro
您的求學精神值得鼓勵 Smiley 為什麼是5個?因為count($_FILES["upfile"]取得的是檔案物件的屬性並非真正的上傳檔案個數
要判定有幾個上傳檔案應該從檔案物件的屬性下手,例如檔案名稱["name"],如以下的範例

程式碼:
<?
echo count($_FILES["upfile"]["name"])."<p>";
for ( $I=0; $I < (count($_FILES["upfile"]["name"])); $I++ )
...

我以為這個伏筆問題永遠都沒有人會提出了,沒想到還是有認真求問的學習者出現,我記住你了 Grin
方便PM給我個人資料嗎? Kiss
已記錄

為了論壇的永續經營,您不妨
贊 助 論 壇
taocenter
訪客


電子郵件
Re: 檔案上傳的問題
« 回覆文章 #4 於: 2005-05-09, 18:27:15 »

你說:「因為count($_FILES["upfile"]取得的是檔案物件的屬性並非真正的上傳檔案個數」
那麼檔案物件的屬性有五個囉!
可是在13-4頁只有列出四個:
1.name
2.size
3.type
4.tmp_name
那麼第五個屬性是?
謝謝
已記錄
小誌
論壇管理員
*
離線 離線

會員性別: 男
文章: 589



個人網站
Re: 檔案上傳的問題
« 回覆文章 #5 於: 2005-05-09, 21:47:41 »

1.name
2.size
3.type
4.tmp_name
那麼第五個屬性是?
謝謝
嗯....好吧,這次我就直接回答你,下次我就回答方向,正確的答案由你來告訴大家囉
第五個屬性是error
UPLOAD_ERR_OK
值:0; 沒有錯誤發生。

UPLOAD_ERR_INI_SIZE
值:1; 檔案大小超過了 php.ini 中 upload_max_filesize 選項限制的值。

UPLOAD_ERR_FORM_SIZE
值:2; 檔案大小超過超過了 HTML 表單(form標籤)中 MAX_FILE_SIZE 選項指定的值。

UPLOAD_ERR_PARTIAL
值:3; 檔案只完成部份上傳。

UPLOAD_ERR_NO_FILE
值:4; 檔案沒被上傳。
已記錄

為了論壇的永續經營,您不妨
贊 助 論 壇
頁: [1] 向上 列印 
« 上一篇主題 下一篇主題 »
跳到:  


本頁花了 0.115 秒, 以及 20 次的資料庫查詢.