我有一個簡單的 HTML 檔案上傳表單:
<form enctype="multipart/form-data" method="post">
<input name="description" type="text">
<input name="file" type="file">
<button type="submit">Submit</button>
</form>
當用戶提交時 - 它向我在 Azure 應用服務(Azure 函式)中運行的 php 腳本發送 AJAX 發布請求。PHP 腳本將檔案保存到服務器,如下所示:
<?php
file_put_contents($filename, $data);
這對所有檔案都適用 - 除了 .xlsx excel 檔案。
嘗試打開保存在服務器上的 excel 檔案時 - 我在 excel 中收到以下錯誤:我們發現“test-excel-file.xlsx”中的某些內容存在問題。你想盡可能多地恢復嗎?
任何人都知道為什么 .xlsx 檔案在保存到服務器時會以某種方式損壞?我做了一些測驗,可以看到當我在文本編輯器中打開原始 excel 檔案和新保存的 excel 檔案時 - 內容是相同的。那么為什么 Excel 會抱怨呢?
事實上,我可以在 Excel 中創建一個帶有示例資料行的全新作業簿 - 保存此檔案。然后在文本編輯器中打開它并將內容復制/粘貼到一個新檔案中,并發生相同的錯誤。所以我真的不認為這是一個問題file_put_contents
。
那么嘗試將 Excel (.xlsx) 檔案內容保存到新的 .xlsx 檔案有什么問題?有人有什么建議嗎?感謝您的時間。
uj5u.com熱心網友回復:
解決方案是不在 Azure Function 中托管此 PHP 腳本,因為 Azure Functions 不公開$_FILES
全域。由于無法訪問$_FILES
,我不得不手動決議多部分表單請求,這會以某種方式破壞復雜的檔案。
因此,我將腳本移到了我們的常規 Azure 應用服務之一,然后我可以訪問$_FILES
全域并且不需要對檔案內容進行任何手動決議。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/507181.html
上一篇:串列不會自動更新撰寫