PHP类似AJAx上传图片简单实例
我们很多时候会在一些网站上,比如写在线简历的时候,会发现我们的图片选择一下,就会立即显示在当前页面,我们常常以为这种东西只有ajax才能实现,今天我稍微学习了一下,发现这种东西并不是ajax实现的。
最终还是用我们的基本知识HTML 中的FORM 来实现上传的,好的,现在我就把我知道的写出来,作为学习之用,当然这只是我自己的学习笔记,如果有错的地方,希望同道者给以指点一二。
首先我们明确一点,上传图片,我们还是用<from ….enctype=”multipart/form-data”>这种情况.
但是如何可以作到不刷新就把上传的图片显示出来呢?这里我们需要对<iframe></iframe>进行一个了解。
用过这个标签的朋友都知道,它可以将你的页面分成几个部分,且每个部分可以有自己的url,即显示几个不同的页面,说到这里或许有些朋友已经知道了这个是怎么一回事了,没错,上传图片就是利用的这个原理,看起来像是在同一个页面,没有跳转,然后事实上已经跳转了,只是我们没有看到而以,好的,下面是一个简单的例子,希望对大家都所帮助。
首先是index.php页面,代码简单如下:
- <form id=”content” action=”hello.php” method=”post” target=”yframe” enctype=”multipart/form-data”>
- <input type=”file” name=”tValue”>
- <input type=”submit” value=”submit”>
- <iframe name=”yframe” src=”hello.php” style=”border:none;”></iframe>
- </form>
- <input type=”text”>
然后是hello.php页面,也就是图片上传的页面,代码如下:
- <?php
- //echo $_FILES["tValue"]["tmp_name"];
- if(move_uploaded_file($_FILES["tValue"]["tmp_name"], “img/a.jpg”))
- {
- echo “<img src=’img/a.jpg’ width=’250px’height=’130px’>”;
- }
- ?>
可以说已经完成了,这几行代码就可以将我们所需要的效果实现,下面来一个分析:首先在form里面有一个target,且它的值是位于它里面的一个iframe.意思是,我们提交后,页面会在这个iframe里面显示出来,从iframe的定义来看,它的内容就是hello.php,所以我们的表单提交后即直接到了这个iframe里面,所以页面不会跳转,但我们完成了上传,在从hello.php来看,上传后它会选择将图片显示出来,由前面可以知道hello.php的内容会显示到iframe里面,所以最后我们看到的效果就是页面没有跳转,我们可以做出一个类似ajax实现的效果,上传图片后可以在当前将其显示出来。