html 表单上传图片 50

html的表单上传图片到指定服务器,在同页面加了个iframe为target时,能实现上传,但是当吧target和iframe去掉时后台就收不到$_FILES这个数组了求... html的表单上传图片到指定服务器,在同页面加了个iframe为target时,能实现上传,但是当吧target和iframe去掉时后台就收不到$_FILES这个数组了求解原因???form上传机制是啥??? 展开
 我来答
千锋教育
2016-08-26 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
  1. 使用表单中的文件域(<input type="file".../>)控件可以上传文件。

  2. 打开DreamWeaver,这里使用的版本是CS6,新建一个php文件。

  3. 保存到网站目录下,命名为upload.php。

  4. 在代码中插入一个表单

  5. 对话框中,操作留空,方法选择“post”,编码类型输入“multipart/form-data”,名称命名为“upload_form”,其中编码类型必须为“multipart/form-data”。点击确定,产生的代码如下:

    <body>

    <form action="" method="post" enctype="multipart/form-data" name="upload_form"></form>

    </body>

  6. 接下来在form中插入一个标签控件、一个文件域控件和一个上传按钮。

    结果如下:

    <body>

    <form action="" method="post" enctype="multipart/form-data" name="upload_form">

      <label>选择图片文件</label>

     <input name="imgfile" type="file" accept="image/gif, image/jpeg"/>

      <input name="upload" type="submit" value="上传" />

    </form>

    </body>

  7. 不同的浏览器,对于文件域控件的显示不同,IE9浏览器和FireFox中的预览效果都要看一下

  8. 代码中,重要的是名为imgfile的文件域控件,type属性为“file”,表示这是一个文件域控件。

    accept属性表示点击“浏览...”按钮时,弹出的打开对话框中的文件类型。accept="image/gif, image/jpeg"表示我们只想在文件打开对话框中显示后缀名为“gif”和“jpg”、“jpeg”的文件。对于此属性,有些浏览器并不支持。比如在IE9中,此属性不起任何作用。在chrome中,此属性起作用。

  9. 如果想支持所有的图像文件,accept值可以设置为“image/*”,在chrome中,文件类型显示

  10. 好了,html代码就写完了,因为action="",表示点击上传按钮时,将表单提交给自身,因此,我们还要添加接收表单的处理代码。

    代码如下:

    <?php

    if (isset($_FILES['imgfile']) 

    && is_uploaded_file($_FILES['imgfile']['tmp_name']))

    {

     $imgFile = $_FILES['imgfile'];

    $imgFileName = $imgFile['name'];

    $imgType = $imgFile['type'];

    $imgSize = $imgFile['size'];

    $imgTmpFile = $imgFile['tmp_name'];

    move_uploaded_file($imgTmpFile, 'upfile/'.$imgFileName);

    $validType = false;

    $upRes = $imgFile['error'];

    if ($upRes == 0)

    {

    if ($imgType == 'image/jpeg'

    || $imgType == 'image/png'

    || $imgType == 'image/gif')

    {

    $validType = true;

    }

    if ($validType)

    {

    $strPrompt = sprintf("文件%s上传成功<br>"

    . "文件大小: %s字节<br>"

    . "<img src='upfile/%s'>"

    , $imgFileName, $imgSize, $imgFileName

    );

    echo $strPrompt;

    }

    }

    }

    ?>

  11. 代码分析:

    $_FILES是一个数组变量,用于保存上传后的文件信息。

    $_FILES['imgfile']表示文件域名称为'imgfile'的控件提交服务器后,上传的文件的信息。

    一个上传的文件,有以下属性信息:

    'name': 上传的文件在客户端的名称。

    'type': 文件的 MIME 类型,例如"image/jpeg"。

    'size': 已上传文件的大小,单位为字节。

    'tmp_name':上传时,在服务器端,会把上传的文件保存到一个临时文件夹中,可以通过此属性得到临时文件名。

    'error':文件在上传过程中的错误代码。如果上传成功,此值为0,其它值的意义如下:

     1:超过了php.ini中设置的上传文件大小。

      2:超过了MAX_FILE_SIZE选项指定的文件大小。

      3:文件只有部分被上传。

      4:文件未被上传。

      5:上传文件大小为0。

    代码中首先判断$_FILES['imgfile']变量是否存在,如果存在,并且$_FILES['imgfile']['tmp_name']变量所指文件被上传了,判断error属性,如果属性为0,把上传后的图像从临时文件夹移到upfile文件夹中,显示上传文件的信息,并显示上传后的图像。

    如果error值不为0,表示上传失败,显示失败信息。

  12. 完成的代码如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.mobiletrain.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="www.mobiletrain.org ">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>上传图片文件</title>

    </head>

    <?php

    if (isset($_FILES['imgfile']) 

    && is_uploaded_file($_FILES['imgfile']['tmp_name']))

    {

     $imgFile = $_FILES['imgfile'];

    $upErr = $imgFile['error'];

    if ($upErr == 0)

    {

    $imgType = $imgFile['type']; //文件类型。

    /* 判断文件类型,这个例子里仅支持jpg和gif类型的图片文件。*/

    if ($imgType == 'image/jpeg'

    || $imgType == 'image/gif')

    {

    $imgFileName = $imgFile['name'];

    $imgSize = $imgFile['size'];

    $imgTmpFile = $imgFile['tmp_name'];

    /* 将文件从临时文件夹移到上传文件夹中。*/

    move_uploaded_file($imgTmpFile, 'upfile/'.$imgFileName);

    /*显示上传后的文件的信息。*/

    $strPrompt = sprintf("文件%s上传成功<br>"

    . "文件大小: %s字节<br>"

    . "<img src='upfile/%s'>"

    , $imgFileName, $imgSize, $imgFileName

    );

    echo $strPrompt;

    }

    else

    {

    echo "请选择jpg或gif文件,不支持其它类型的文件。";

    }

    }

    else

    {

    echo "文件上传失败。<br>";

    switch ($upErr)

    {

    case 1:

     echo "超过了php.ini中设置的上传文件大小。";

    break;

    case 2:

     echo "超过了MAX_FILE_SIZE选项指定的文件大小。";

    break;

    case 3:

     echo "文件只有部分被上传。";

    break;

    case 4:

     echo "文件未被上传。";

    break;

    case 5:

     echo "上传文件大小为0";

    break;

    }

    }

    }

    else

    {

    /*显示表单。*/

    ?>

    <body>

    <form action="" method="post" enctype="multipart/form-data" name="upload_form">

     <label>选择图片文件</label>

     <input name="imgfile" type="file" accept="image/gif, image/jpeg"/>

      <input name="upload" type="submit" value="上传" />

    </form>

    </body>

    <?php

    }

    ?>

    </html>

追问
和我问的并没有关系(¬_¬)
zxcvbnm号9
2020-06-08
知道答主
回答量:22
采纳率:0%
帮助的人:1.3万
展开全部
用表单bai中的文件域(<input type="file".../>)控件可以上du传文件。zhi

打开DreamWeaver,这里使用dao的版本是CS6,新建一个php文件。

保存到网站目录下,命名为upload.php。

在代码中插入一个表单

对话框中,操作留空,方法选择“post”,编码类型输入“multipart/form-data”,名称命名为“upload_form”,其中编码类型必须为“multipart/form-data”。点击确定,产生的代码如下:

<body>

<form action="" method="post" enctype="multipart/form-data" name="upload_form"></form>

</body>

接下来在form中插入一个标签控件、一个文件域控件和一个上传按钮。

结果如下:

<body>

<form action="" method="post" enctype="multipart/form-data" name="upload_form">

<label>选择图片文件</label>

<input name="imgfile" type="file" accept="image/gif, image/jpeg"/>

<input name="upload" type="submit" value="上传" />

</form>

</body>

不同的浏览器,对于文件域控件的显示不同,IE9浏览器和FireFox中的预览效果都要看一下

代码中,重要的是名为img
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞花岁月2007
2016-08-25 · TA获得超过377个赞
知道小有建树答主
回答量:505
采纳率:78%
帮助的人:335万
展开全部
这和iframe target 一点关系都没有,请查看其他原因
追问
但是改了有了就可以没有就是不可以。。。是不是域的问题?两个文件都在本地化能正常实现加不加无所谓
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
屏紫520
2018-03-30 · TA获得超过2.3万个赞
知道小有建树答主
回答量:84
采纳率:100%
帮助的人:2.3万
展开全部

html表单这样上传图片:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.mobiletrain.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="www.mobiletrain.org ">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>上传图片</title>

</head>

一、html在表单元素中这样添加背景图

用户名:<input type="text" name="user" style="background: url(图片路径)" /><br/>
密 码: <input type="password" name="mima" style="background: url(图片路径)" /><br/>
<input type="submit" value="确定" style="background: url(图片路径)" />  
<input type="reset" value="取消" style="background: url(图片路径)" />

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式