• 技术文章 >后端开发 >php教程

    记录:php上传图片至服务器 并返回显示图片地址

    不言不言2018-05-15 14:37:30原创7196
    这次给大家带来php上传图片至服务器 并返回显示图片地址,PHP上传保存到文件夹的注意事项有哪些,下面就是实战案例,一起来看一下。


    前端上传图片主要代码:

    upload_test.html

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
        <title>Upload Image</title>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    </head>
    <body>
         <!--注意这里的iframe标签-->
         <iframe  name="post_frame" style="display:none;"> </iframe>
    
          <form id="photo_upload" action="upload_action.php" method="post" target="post_frame"  enctype="multipart/form-data">              
            <table width="100%" cellspacing="0" cellpadding="0" border="0" >
              <tbody>
                <tr>  
                  <th style="border-bottom:1px solid #D1E0EB;text-align: right;">主题封面图:</th>
                  <td style="border-bottom:1px solid #D1E0EB">
                    <input type="file" id="file" name="opus" value="" width="200" /> <input style=" height: 40px;width: 45px;" type="submit" value="上传" name="submit" />  <span> 图片格式 jpg  jpeg gif  png  </span>
                    <input type="hidden" name="callbackUrl" value="http://localhost/url_test/callback.php"  />
                  </td>
                </tr>
              </tbody>
            </table>
          </form>
    
            <table width="100%" cellspacing="0" cellpadding="0" border="0" >
    
               <tr>
                  <th style="border-bottom:1px solid #D1E0EB;text-align: right;">封面图URL:</th>
                  <td style="border-bottom:1px solid #D1E0EB">
                    <input type="text" id="cover_img_url" name="cover_img_url" size="120" readonly="readonly" /><span>* 
                    <span style=" height: 100px;" id="show_img"></span></span>
                  </td>
                </tr>
          </table>
     </body>
    </html>

    这里需要注意当回调页面返回图片地址到前端页面时,需要iframe标签(这里我们将其隐藏),否则将会找不到要在页面显示的地方 <input type="text" id="cover_img_url" name="cover_img_url" size="120" readonly="readonly" />。

    和一般的<form>标签相比多了一个target属性罢了,用于指定标签页在哪里打开以及提交数据
    而如果设置为iframe的name值,即"post_frame"的话,就会在该iframe内打开,因为CSS设置为隐藏,因而不会有任何动静。若将display:none去掉,还会看到服务器的返回信息。

    上传文件时,form表单的method、 enctype属性必须和上面的代码一样,然后将target的值设为iframe的name,这样就可以实现无刷新上传文件。

    <iframe  name="post_frame" style="display:none;"> </iframe>

    当选择图片提交时,还有一个隐藏域,即给远程服务器提交图片时,还需要提交回调路径,好让图片返回给本地服务器。(这里我们都是用本地服务器来进行测试)

     <input type="hidden" name="callbackUrl" value="http://localhost/url_test/callback.php"  />

    远程服务器图片处理

    upload_action.php

    <?php
    /**
     * 图片上传处理
     * User: CorwienWong
     * Date: 16-06-15
     * Time: 00:33
     */
    header("Content-type:text/html;charset=utf-8");
    
    // 配置文件需要上传到服务器的路径,需要允许所有用户有可写权限,否则无法上传成功
    $uploadPath = 'uploads/';
    
    // 获取提交的图片数据
    $file = $_FILES['opus'];
    
    // 获取图片回调路径
    $callbackUrl = $_POST['callbackUrl'];
    
    if($file['error'] > 0)
    {
    
        $msg = '传入参数错误' . $file['error'] . "  ";
        exit($msg);
    }
    else
    {
    
       // chmod($uploadPath, 0666);
    
        if(file_exists($uploadPath.$file['name'])){
           $msg = $file['name'] . "文件已经存在!";
           exit($msg);
        }
        else
        {
            if(move_uploaded_file($file['tmp_name'], $uploadPath.$file['name']))
            {
    
              $img_url = "http://localhost/url_test/".$uploadPath.$file['name'];
              $img_url = urlencode($img_url);
    
              $url = $callbackUrl."?img_url={$img_url}";
    
              // 跳转
              header("location:{$url}");
              exit();
    
            }
            else
            {
              exit("上传失败!");
    
            }
    
        }}?>

    回调页面返回图片地址到前端页面

    回调页面获取到远程服务器传来的图片地址后,经过"window.parent.XXX"返回给前端页面。
    callback.php

    <?php
      ##回调方法
    
    $img_url = $_GET['img_url'];
    
    // 返回数据给回调页面
    
    echo "
    <script>window.parent.document.getElementById('cover_img_url').value='{$img_url}';</script>
    ";
    
    ?>

    相关推荐:

    PHP上传大小限制修改

    以上就是记录:php上传图片至服务器 并返回显示图片地址的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:服务器 php 返回
    上一篇:PHP 上传大文件方法(修改Apache配置文件) 下一篇:Python简单实现阿拉伯数字和罗马数字的互相转换
    PHP编程就业班

    相关文章推荐

    • PHP高并发实例详解之解决商品库存超卖问题• 带你聊聊PHP中的泛型之基础知识浅析• 十天学会php之第三天_php基础• 再点一次Active的名,我把你的函数功能扩充了一下,嘻嘻,现在能_PHP• PHP5.0对象模型探索之其它特性_PHP

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网