首页
   /       /   
PHP图片上传案例
4月
21
PHP图片上传案例
作者:大彭Sir    分类: 学习笔记

图片上传

PHP图片上传案例
今天在写个人主页的时候发现后台无法上传图片,然后自己写了一个图片上传,简单记录一下代码。

表单代码

<div class="panel-heading"><h3 class="panel-title">新增作品</h3></div>';
<form action="upload_img.php" target="post_frame"  enctype="multipart/form-data" method="post">
<div class="form-group">
<input type="file" id="file" name="opus" value="" width="200" />
<input style=" height: 40px;width: 45px;" type="submit" value="上传" name="submit" />
<input type="hidden" name="callbackUrl" value="/callback.php"  />
<iframe  name="post_frame" style="display:none;"> </iframe>

这里需要注意当回调页面返回图片地址到前端页面时,需要iframe标签(这里我们将其隐藏),否则将会找不到要在页面显示的地方

<input type="text" id="cover_img_url" name="cover_img_url" size="120" readonly="readonly" />。

和一般的

标签相比多了一个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="/callback.php"  />

服务器图片处理

<?php
/**
 * 图片上传处理
 */
//这里判断是否已登陆,这段代码就不放这里了(不影响使用)
header("Content-type:text/html;charset=utf-8");

// 配置文件需要上传到服务器的路径,需要允许所有用户有可写权限,否则无法上传成功
$uploadPath = '../img/';

// 获取提交的图片数据
$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'] . "文件已经存在!";
       echo "<script>alert('文件已经存在!');</script>";
       exit();
    }
    else
    {
        if(move_uploaded_file($file['tmp_name'], $uploadPath.$file['name']))
        {

          $img_url = "img/".$file['name'];
          $img_url = urlencode($img_url);

          $url = $callbackUrl."?img_url={$img_url}";

          // 跳转
          header("location:{$url}");
          exit();

        }
        else
        {
            echo "<script>alert('上传失败!');</script>";
          exit("上传失败!");

        }

    }}?>

回调页面

<?php
  ##回调方法

$img_url = $_GET['img_url'];

// 返回数据给回调页面

echo "
<script>window.parent.document.getElementById('这里是图片输入框的ID名').value='{$img_url}';</script>
";

?>
本文标签:标签: PHP HTML 图片上传 表单提交
责任声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!
转载声明:本文作者大彭Sir,如需转载请保留文章出处!原文链接请自行复制!

Theme By Brief 鄂ICP备19010459号

站长统计 sitemap

首页

分类

友链

登录