2012-10-31 145 views
2

我已經創建了一個自定義產品配置程序,可以將畫布元素保存爲base64編碼圖像。當我在瀏覽器中將圖像作爲圖像src回顯時,它可以正常工作。Codeigniter |將Base64圖像保存到文件

因此,像這樣的工作:

$base64Image = $_POST['dataUrl']; 
echo '<img src="'.$base64Image.'" />'; 

我的問題是笨不會這樣的base64圖片src添加到會話中,可能是因爲它太大了。我嘗試了一些人們用來將圖像寫入服務器的方法,並且它們都會引發錯誤。有誰知道我可以如何將這個base64字符串寫入服務器上的圖像,如圖像/自定義文件夾中的'myimage.png'?

任何幫助表示讚賞。

+0

您應該HTML轉義該dataURI,或者您有XSS問題 –

+1

試試這個:http://j-query.blogspot.in/2011/02/save-base64-encoded-canvas-image-to-png。 html – GBD

回答

2

使用tempnam()由腳本寫入的目錄獲得一個唯一的文件名。您可以將會話變量「thisUsersTempFile」映射到該文件名。

或者,如果它不是臨時的,您可以將關聯存儲在別的地方。如果你需要清理tmp文件,你可能需要這樣做,因爲我認爲你不能掛鉤會話銷燬。您可以輪詢現有會話並刪除與銷燬會話關聯的tmp文件。你可以使用cron作業。