2017年2月24日 星期五

PHP搭配IE 瀏覽器無法接收上傳檔案


上傳網頁檔:upload.php
接收網頁檔:receive.php

upload.php
完整 html 程式碼就不附了。form 表單元素如下:

<form id="form-main" method="POST" action="receive.php" target="_blank" accept-charset="UTF-8" enctype="multipart/form-data">

從程式碼可以看到,我是要 post 到另一頁,使用 target="_blank" 這個屬性開新頁。

receive.php
 <?php
if(!empty($_FILES)){
  echo "<pre>".print_r($_FILES, 1)."</pre>";
}
?>

在其它瀏覽器都正常,firefox, chrome, edge, 但只有 ie 無法讀取內容。

正常情況
Array
(
    [uploadFile] => Array
        (
            [name] => test.txt
            [type] => text/plain
            [tmp_name] => D:\xampp\tmp\php8B98.tmp
            [error] => 0
            [size] => 10
        )

)

IE瀏覽器:
Array
(
    [uploadFile] => Array
        (
            [name] => test.txt
            [type] => text/plain
            [tmp_name] => D:\xampp\tmp\phpB1D7.tmp
            [error] => 0
            [size] => 0
        )

)
雖然可以看到 $_FILES 的確有接收到檔案,但是 size 大小卻是 0。使用 fgetcsv() 及 file_get_contents() 讀出來的內容都是空的。

後來發現,把網域加到 IE 的信任網站就可以了:
IE > 網際網路選項 > 安全性 > 信任網站
我把我的測試站台 testsite.local 加進去就可以看到內容。

網站架設

沒有留言:

張貼留言