2013-07-26 45 views
1

我有使用dom上傳xml文件的代碼。上傳xml文件後數據變化的原因PHP

if (!$dom->load($folderName . "/" . $fvalue)) { 

echo "<br>".$fvalue." file is corrupt or Tags are not closed properly "; 

} 

它上傳文件但上傳後,也有文件的任何XML標籤之前開始3個空格。問題是我們下載上傳的文件並重新上傳。但在文件的開頭有空格,dom不允許在文件損壞時上傳文件(我使用xmlvalidation.com檢查xml的驗證),因爲在開始處有空格,所以返回錯誤。如果我手動刪除空間比沒有錯誤。

如何在不添加空格的情況下上傳文件?
我檢查刪除文件等空間,但我不想這樣做。我想上傳文件而不改變。

+0

你是否確定空間是在上傳過程中創建的。也許它們是在下載期間創建的。 – steven

+0

上傳文件後,顯示要下載的文件的鏈接。我從那裏下載,也從ftp服務器下載。它在開始時是相同的空間。 – ALi

+0

您使用哪個工具上傳文件?如果是ftp客戶端並使用Windows機器,那麼請檢查您的上傳模式。也許從ascii更改爲二進制模式。 – spinsch

回答

0

問題出在下載文件。下載後在文件的開頭有一些空格。代碼是

header("Content-type: application/force-download; charset=utf-8"); 
header("Content-type: application/force-download"); 
header("Content-disposition: attachment;filename=" . $downFileName); 
readfile($filename); 

我改變了這個,它現在工作正常。

header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename='.basename($downFileName)); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($filename)); 
ob_clean(); 
flush(); 
readfile($filename);