2013-07-09 68 views
0

我有一个页面,用户可以上传图像,然后移动和调整大小使用jQuery的可拖动和jQuery的可调整大小。使用本地存储的图像版本

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

我曾尝试没有成功做到这一点,因为我只得到文件

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

这是可能的临时位置?

回答

0

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

+0

这就是问题的全部,我可以不使用本地版本使用其当前位置的文件路径,然后当我更新数据库时稍后移动文件 –

0

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

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

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

+0

否调整大小参数将被发送到数组和该数组将被传递到数据库'保存',我想要的是图像要显示在页面上,而不必上传到服务器。稍后,我可以在用户点击保存时上传图像。原因是因为页面上还有很多其他事情发生,我想要保存在服务器请求上,并且不会因为上传图像需要时间而中断页面。 –

0

根据手册中的超级全球$_FILES

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

所以为了使用这一全球你必须有上传的图片。我会说,你可以避免多次请求到服务器上传图像后使用jquery和使用move_uploaded_file()只有在用户选择他想要的大小后。

按照您所建议的方式执行此操作仅适用于JavaScript和PHP。据我所知,至少。

+0

是的,似乎完整的文件路径通过浏览器隐藏,以保护用户的安全性。我只是在寻找一个文件上传的快捷方式,因为他们时间很漫长 –

+0

@BarryWatts idipous,我是正确的 - 你不能在没有上传图片到服务器的情况下编辑网页上的图片。 – Jon