使用本地存储的图像版本


using a locally stored version of an image

我有一个页面,用户可以将图像上传到该页面,然后使用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>

这可能吗?

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

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

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

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

根据手册,超全局$_FILES

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

所以为了使用这个全局,你必须上传图片。我想说的是,在使用jquery上传图像后,只有在用户选择了他想要的尺寸后,才使用move_uploaded_file(),这样就可以避免向服务器发出多次请求。

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