簡體   English   中英

文件名中的特殊字符-下載與刪除

[英]Special characters in file name - download vs delete

我正在嘗試在我的網站上創建文件管理系統。 問題是下載包含特殊字符的文件(其他文件可以正常工作)。 如果我使用file_exists($mypath)則結果為true,因此文件存在。

使用unlink($mypath)刪除此文件時,它也可以正常工作。 唯一不起作用的是下載文件。 下載是通過href鏈接完成的,在該鏈接中我回顯了路徑,但它以某種方式轉換了字符,因此該鏈接不起作用。 解決方案已經過一些轉換,但是我還沒有成功。

我懷疑php正在將特殊字符轉換為html實體。

您應該使用“ rawurlencode” php方法來保留特殊字符。

以下鏈接討論有關您的問題(文件名中出現特殊字符並希望創建鏈接):

http://www.dxsdata.com/2015/03/html-php-mailto-content-link-with-special-characters/

他們的解決方案顯示了rawurlencode的使用,從上面的鏈接中復制了以下內容,以防萬一鏈接失效:

剪斷開始...

情境

在您的網站上,您想提供一個鏈接,該鏈接打開帶有郵件和內容建議的Outlook之類的郵件客戶端。 內容包含指向名稱中帶有特殊字符的文件的鏈接,這會導致Outlook斷開鏈接,例如,如果其中包含空格或德語Umlaute。

使用PHP編寫

<?php
$fullPath = $yourAbsoluteHttpPath . "/" . rawurlencode(rawurlencode($filename));

$mailto = "mailto:a@b.com?subject=File for you&body=Your file: ".$fullPath;

?>

<a href="<?=$mailto?>">Generate Mail</a>

注意“ rawurlencode”功能的雙重用法。 HTML輸出需要第一個,而Outlook將鏈接代碼帶入其郵件窗口時,第二部分將是必需的。

剪斷端;-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM