【问题标题】:using a locally stored version of an image使用本地存储的图像版本
【发布时间】:2013-07-06 19:42:57
【问题描述】:

我有一个页面,用户可以将图像上传到该页面,然后使用 jquery draggable 和 jquery resizable 移动和调整大小。

要保存对服务器的多个请求,是否可以使用本地存储的图像版本来加快速度,然后有一个保存按钮,该按钮只会在请求时将图像上传到服务器。

我尝试这样做没有成功,因为我只获得了文件的临时位置

<?
$posted=$_REQUEST['posted'];
if($posted!='')
    {
     $image = $_FILES['file']['tmp_name']."/".$_FILES['file']['name'];  
     ?><img src="<? echo $image ?>" width="480" height="360" /><?
     echo "posted=".$image;
    }
?>
<form action="#" enctype="multipart/form-data" method="post">
 <input type="hidden" name="posted" value="1" />
 <input type="file" id="file" name="file" size="30" /> 
 <input name="submit" type="submit" value="send" />
</form>

这可能吗?

【问题讨论】:

    标签: php html image-upload


    【解决方案1】:

    您必须使用move_uploaded_file() 将上传的文件移动到您想要的目的地。

    【讨论】:

    • 这就是问题的全部意义,我可以不使用本地版本使用其当前位置的文件路径,然后在以后更新数据库时移动文件
    【解决方案2】:

    如果您的意思是“在浏览器中调整用户计算机上的图像大小,然后在裁剪完成后上传”,那么不是。

    据我所知,除非您使用 Flash 或 Java 插件,否则这是不可能的。

    $_FILES['file']['tmp_name'] 变量包含上传文件在服务器上的临时位置。临时文件会定期删除,所以要将上传的文件保留在服务器上,您需要使用move_uploaded_file()

    【讨论】:

    • 没有调整大小的参数将被发送到一个数组,并且该数组将在“保存”时传递给数据库,我想要的是无需上传即可在页面上显示的图像到服务器。然后,我可以稍后在用户单击保存时上传图像。这样做的原因是页面上发生了许多其他事情,我想节省服务器请求,也不用上传图片所需的时间来中断页面。
    【解决方案3】:

    根据手册,超级全局$_FILES

    An associative array of items uploaded to the current script via the HTTP POST method.
    

    因此,要使用此全局变量,您必须上传图片。我想说的是,您可以在使用 jquery 上传图像并仅在用户选择了他想要的大小后才使用 move_uploaded_file() 来避免对服务器的多个请求。

    仅使用 javascript 和 PHP 无法按照您建议的方式进行操作。至少据我所知。

    【讨论】:

    • 是的,出于安全原因,为了保护用户,浏览器似乎隐藏了完整的文件路径。我只是在寻找文件上传的快捷方式,因为它们正在消耗时间
    • @BarryWatts idipous,我是对的 - 如果不将图像上传到服务器,您将无法编辑网页上的图像。
    猜你喜欢
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 2012-10-30
    相关资源
    最近更新 更多