【问题标题】:How to save file in the same path of uploaded file, PHP?如何将文件保存在上传文件的同一路径中,PHP?
【发布时间】:2012-07-29 20:42:49
【问题描述】:

使用 PHP ,我的概念是: 用户通过提交表单上传图片,然后脚本覆盖logo水印。我想将修改后的图像保存到原始图像的相同位置(在用户的计算机上)。我的代码现在是这样的:

<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>

如何知道原文件的路径将修改后的图片保存在同一位置?

【问题讨论】:

    标签: php forms upload path watermark


    【解决方案1】:

    您不能将其直接保存在用户的计算机上(使用 HTML),因为这将违反 - 一切。相反,您可以在修改后提供文件以供下载。前提是您使用 GD 进行水印,代码很简单(但并不完美,应该被认为只是一个线索):

    // perform some ops with $img
    
    Header('Content-Type: image/jpeg');
    Header('Content-Disposition: attachment; filename=' . $filename);
    
    imagejpeg($img);
    
    imagedestroy($img);
    

    【讨论】:

    • 我的运气不好!我知道如何执行带水印的图像,只是想知道如何将文件保存到同一位置。顺便说一句,感谢米罗斯拉夫。
    • 正如我所说,我开发网站已有多年,我想不出直接的方法,而不是通过 HTML 方式,我不确定你是否可以使用 Java Applet或各种 Flash 控制器。允许任意站点替换您文件系统的内容将是对隐私和安全的侵犯...
    • 我尝试通过这个link 来做,但它返回C:\\fakepath\\xxx.jpg。
    • 这不是关于获取路径(您可以在表单上创建 onsubmit 处理程序并将路径传递给隐藏文本字段),而是关于将文件再次保存到这个路径......那些双斜杠很容易删除(str_replace),尽管如此。
    【解决方案2】:

    很简单。我已经做到了。当用户上传图片时,不只是获取图片,而是创建一个隐藏字段来存储整个路径。现在,要么将此路径留在用户 PC 上的 cookie 中,要么与您一起存储。在返回时,使用自定义的另存为对话框并将该路径插入文件之前。

    【讨论】:

    • 任何示例或代码,@divanshu?我尝试通过将 添加到表单并添加 ...onchange="document.getElementById('filepath').value=this 。价值;”到元素 ,但它返回 "fakepath"....
    • 我按照Find Path of File to be Uploaded 中的说明进行操作。它在 $_POST['filepath'] 中返回 C:\\fakepath\\xxx.jpg。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2012-10-28
    • 2017-09-25
    相关资源
    最近更新 更多