2014-02-05 58 views
0

我有一個字符串表示一個812位文件作爲十六進制字符串。我試圖通過某種方式傳遞給php腳本,強制下載文件。問題是URL字符串太長。只是十六進制字符串的長度是1624年。是否有某種編碼或加密我可以用來縮短字符串,並仍然能夠在PHP端獲得預期的結果?我曾嘗試用Ajax請求發送json,但我不相信我可以用這種方式強制下載。縮短我的URL字符串的一種方法

JS:

var cfg = ''; 
for (var x = 0; x < relayBytes.length; x++) 
{ 
    var str = relayBytes[x].toString(16); 
    if (str.length === 1) str = '0' + str; 
    cfg += str; 
} 
window.location = '../script.php?relay=' + cfg; 

relayBytes是int陣列的長度812

PHP:

<?php 
header('Content-Type: application/octetstream; name="file.txt"'); 
header('Content-Type: application/octet-stream; name="file.txt"'); 
header('Content-Disposition: attachment; filename="file.txt"'); 
echo $_GET['relay']; 
?> 
+2

您可以切換到POST – ToBe

+2

爲什麼字符串必須那麼長?你可以使用較短的字符串,然後服務器端鏈接較長的字符串與較長的字符串? – Samsquanch

+2

你也可以創建一個txt文件,併發送鏈接到它。 –

回答

1

可以使用POST方法來從一個網頁傳遞數據到另一個頁面,也有許多第三方服務爲您提供URL縮短服務。你也可以使用他們的服務,但我更喜歡你使用表單發佈方法來傳遞數據。