iT邦幫忙

0

PHP copy能傳圖檔不能傳文件

  • 分享至 

  • xImage

想請問各位大大
PHP copy()能傳圖檔到指定的資料夾,但無法傳文件到指定的資料夾
是哪個環節有問題呢?

看更多先前的討論...收起先前的討論...
特倫斯 iT邦新手 5 級 ‧ 2022-06-08 21:47:46 檢舉
補充一下,有判斷檔案屬性(xls)都正常,echo 上傳成功也正確,但卻無法上傳到指定資料夾
你又不說錯誤訊息。這真的很多原因猜不到
特倫斯 iT邦新手 5 級 ‧ 2022-06-08 22:02:16 檢舉
沒有出現任何錯誤訊息@@
去查LOG。你犯了幾個問題
1.不PO程式碼。
2.沒說錯誤訊息。

一般沒成功沒錯誤訊息的情況下。就得往程式碼內找。或是從LOG找。
因為有可能被關閉輸出錯誤。但一般LOG內可以找到原因。

不要一直問觀落「因」的問題。
不要考驗我的通靈能力啦!
特倫斯 iT邦新手 5 級 ‧ 2022-06-08 22:07:40 檢舉
抱歉!因必須在連上公司網路,所以尚無法po程式碼,到時再查察log看看
特倫斯 iT邦新手 5 級 ‧ 2022-06-08 23:25:18 檢舉
補充~原程式碼在舊版本MySQL+php內可上傳文件(xls)及圖檔,轉移到新版本MySQL+php就不行傳文件
版本會有差異限制嗎?
通靈亡 iT邦高手 1 級 ‧ 2022-06-09 14:30:00 檢舉
如果上傳失敗,請在 move_uploaded_file 後面放一下 $_FILES["file"]["error"]; 看看吐給你什麼錯誤訊息 (下面是 0~8 分別代表的意思)
UPLOAD_ERR_INI_SIZE = Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.

UPLOAD_ERR_FORM_SIZE = Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.

UPLOAD_ERR_PARTIAL = Value: 3; The uploaded file was only partially uploaded.

UPLOAD_ERR_NO_FILE = Value: 4; No file was uploaded.

UPLOAD_ERR_NO_TMP_DIR = Value: 6; Missing a temporary folder. Introduced in PHP 5.0.3.

UPLOAD_ERR_CANT_WRITE = Value: 7; Failed to write file to disk. Introduced in PHP 5.1.0.

UPLOAD_ERR_EXTENSION = Value: 8; A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help.

如果是 copy 失敗,請參考下面程式碼的寫法,從 error_get_last() 取得錯誤訊息
<?php
if(!copy('http://someserver.com/somefile.zip','./somefile.zip'))
{
$errors= error_get_last();
echo "COPY ERROR: ".$errors['type'];
echo "<br />\n".$errors['message'];
}
else
{
echo "File copied from remote!";
}
?>
特倫斯 iT邦新手 5 級 ‧ 2022-06-09 20:30:31 檢舉
回各位大大的幫忙
今天去測試一下目的地資料夾新增excel,發現無法新增,原因為公司資安政策,C.D槽管制禁止放置office類型檔案,所以才會有可傳圖檔,不可上傳文件的問題
感謝大大協助
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-06-09 13:57:48

copy 是個很單純的動作
如果 copy 會失敗
我只想得到
1.檔名/路徑錯誤:找不到該檔案
2.權限問題:無法在該路徑讀/寫該檔案

特倫斯 iT邦新手 5 級 ‧ 2022-06-09 20:30:04 檢舉

回各位大大的幫忙
今天去測試一下目的地資料夾新增excel,發現無法新增,原因為公司資安政策,C.D槽管制禁止放置office類型檔案,所以才會有可傳圖檔,不可上傳文件的問題
感謝大大協助

0
通靈亡
iT邦高手 1 級 ‧ 2022-06-09 14:53:06

如果上傳失敗,請在 move_uploaded_file 後面放一下 $FILES["file"]["error"];
看看吐給你什麼錯誤訊息 (下面是 0~8 分別代表的意思)

UPLOAD_ERR_INI_SIZE = Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.

UPLOAD_ERR_FORM_SIZE = Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.

UPLOAD_ERR_PARTIAL = Value: 3; The uploaded file was only partially uploaded.

UPLOAD_ERR_NO_FILE = Value: 4; No file was uploaded.

UPLOAD_ERR_NO_TMP_DIR = Value: 6; Missing a temporary folder. Introduced in PHP 5.0.3.

UPLOAD_ERR_CANT_WRITE = Value: 7; Failed to write file to disk. Introduced in PHP 5.1.0.

UPLOAD_ERR_EXTENSION = Value: 8; A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help.

如果是 copy 失敗,請參考下面程式碼的寫法,從 error_get_last() 取得錯誤訊息

<?php
if(!copy('...','...'))
{
    $errors= error_get_last();
    echo "COPY ERROR: ".$errors['type'];
    echo "<br />\n".$errors['message'];
} 
else 
{
    echo "File copied";
}
?>
特倫斯 iT邦新手 5 級 ‧ 2022-06-09 20:29:55 檢舉

回各位大大的幫忙
今天去測試一下目的地資料夾新增excel,發現無法新增,原因為公司資安政策,C.D槽管制禁止放置office類型檔案,所以才會有可傳圖檔,不可上傳文件的問題
感謝大大協助

我要發表回答

立即登入回答