2012-08-01 97 views
1

使用PHP,我的概念是: 用戶通過提交表單上傳圖片,然後腳本疊加logo水印。我想將修改後的圖像保存到原始圖像的相同位置(在用戶的計算機上)。我現在的代碼是這樣的:如何將文件保存在上傳文件的相同路徑中,PHP?

<form name="form1" method="post" action="watermark.php" enctype="multipart/form-data"> 

Select file: 
<input type="file" name="uploadfile"/> 
<input type="submit" value="submit"> 

</form> 

如何知道原始文件的路徑保存修改後的圖像在同一位置?

回答

1

您不能直接將其保存在用戶的計算機上(使用HTML),因爲這將違反 - 所有內容。相反,您可以在修改後提供要下載的文件。提供的,使用的是GD的水印,代碼簡單(但不是完美的,應該被認爲只是一個鉛):

// perform some ops with $img 

Header('Content-Type: image/jpeg'); 
Header('Content-Disposition: attachment; filename=' . $filename); 

imagejpeg($img); 

imagedestroy($img); 
+0

我的運氣不好!我知道如何執行水印圖像,只是想知道如何將文件保存到相同的位置。順便說一句,謝謝米羅斯拉夫。 – 2012-08-01 00:46:03

+0

正如我所說,我正在開發網站多年,我不能想到一個直接的方式,而不是通過HTML的手段,我不確定你是否可以用Java Applet或Flash控制器來做到這一點。這將違反隱私和安全性,允許任意站點替換文件系統的內容... – 2012-08-01 00:49:43

+0

我嘗試通過此[鏈接](http://stackoverflow.com/questions/1631624/find-path-即將上傳的文件),但它返回** C:\\ fakepath \\ xxx.jpg **。 – 2012-08-01 01:02:03

0

它很容易。我已經做到了。當用戶上傳圖片時,不要僅僅拍攝圖片,而應創建一個隱藏字段來存儲整個路徑。現在,或者在用戶的個人電腦上保留這個路徑,或者將它與您一起存儲。在返回時,使用自定義的另存爲對話框並在該文件之前插入該路徑。

+0

任何示例或代碼,@divanshu?我嘗試通過在表單中​​添加並添加... onchange =「document.getElementById('filepath')。value = this 。值;」到元素,但它返回「fakepath」.... – 2012-08-01 01:38:59

+0

我按照[查找要上傳的文件的路徑]中的說明(http://stackoverflow.com/questions/1631624/找到路徑-的文件到要上傳)。它在$ _POST ['filepath']中返回** C:\\ fakepath \\ xxx.jpg **。 – 2012-08-01 01:47:40

相關問題