var_dump($_files第一句,是為了檢視全域性變數 $_files 到底有沒有「東西」,如果web服務工作正常,php解析正常,那就應該有值,顯示成如下模樣);if (isset($_files["user_photo"]))
}
array(1) }可是一開始不是這樣的,通過頁面提示,發現無法儲存/寫入檔案,似乎與許可權有關...iis...許可權...嗯,let's baidu
web 伺服器需要獨立的許可權,因此不能儲存,就是不能寫入本地(伺服器的本地),不能寫入本地就是沒有寫許可權,因此要對本地資料夾賦予許可權。wwwroot下新建立乙個 ./user/file 資料夾,右鍵點選屬性,選擇安全,對 iis_iusrs 使用者賦予寫許可權(操作前只有讀),設定後應該是這樣子
好,let's 再試一下,又提示有關寫入和許可權的問題,冷靜想想,經過分析提示資訊,發現執行php頁面的路徑無法操作流...那意味著...php指令碼要操作php頁面所在的路徑...且先不管為什麼操作這個路徑,說明還是許可權的問題。乾脆,對整個 wwwroot 設定了路徑,如法炮製。再試一下,成功了!但是,/user/file 下根本沒有檔案...哪兒去了?
經過一番**分析和檔案查詢,在 postphoto.php 同路徑下找到了檔案...哦終於明白了。因為一開始的時候,php **中的 $uploaddir="../user/file/"; 一句原本是這樣的 $uploaddir="./"; ,因此檔案上傳到了該指令碼同目錄下,但當時還未賦予其寫許可權,因此寫入當然失敗。在對整個 wwwroot 賦予了許可權之後,自然寫成功了,也就上傳成功了。理解了關係之後,把 $uploaddir 修改為 上一層的user下的file資料夾 後再執行,終於皆大歡喜!
總結:1. 無論何種 web 服務,對許可權的管理是很嚴格的,要認真仔細配置許可權;
2. 練習時無所謂,做專案時,要認真考慮整個專案的檔案結構,避免臨時調整,便於分配讀寫許可權;
3. php.ini 需要配合如
upload_tmp_dir 指定了 php 上傳檔案的臨時存放路徑,可空,如空,將使用系統預設,windows 系統將會是 x:\windows\temp,並以系統臨時檔名命名,如php8fd1.tmp
上傳檔案失敗 nginx
在頁面有個上傳檔案的功能,本地啟動之後,除錯的結果是 後台邏輯已經正常跑完了邏輯,生成了響應的資訊 響應資訊有個檔名filename 但是在頁面上沒顯示出這個filename,同時在儲存時,會提示需要上傳檔案。報錯資訊 解決辦法 修改nginx.conf 的配置資訊 client max body ...
NodeJS環境下使用axios上傳檔案
最近有個需求,需要在nodejs後端上傳到雲儲存伺服器,剛好對axios這個庫比較熟悉,因此便開始在網上查資料,但是網上大多的都是用axios在前端上傳檔案的 即是基於瀏覽器環境的。後來找到了基於nodejs環境的axios上傳 一番copy後便開始了測試,本以為會一帆風順,沒想到伺服器那邊卻總是返...
SecureCRT rz 上傳檔案失敗問題
在把windows上的檔案傳至linux端時用到securecrt,一般小檔案都沒有問題,檔案太大時則出現了上傳後的檔案只有幾k大小,當然大於2個g的是不可能傳的上去的了。對於幾百m到1g多的大檔案要如下處理。單獨用rz會有兩個問題 上傳中斷 上傳檔案變化 md5不同 解決辦法是上傳是用rz be,...