当前位置:首页 » 文件传输 » 文件上传控件type属性
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

文件上传控件type属性

发布时间: 2022-10-07 14:46:48

A. html 表单上传图片

  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>

B. form表单中的enctype="multipart/form-data"什么意思

enctype就是encodetype就是编码类型的意思。

multipart/form-data是指表单数据有多部分构成,既有文本数据,又有文件等二进制数据的意思。

需要注意的是:默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传,只有使用了multipart/form-data,才能完整的传递文件数据。

application/x-www-form-urlencoded不是不能上传文件,是只能上传文本格式的文件,multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。

(2)文件上传控件type属性扩展阅读:

一、关于HTML <form> 标签的 enctype 属性

application/x-www-form-urlencoded:在发送前编码所有字符(默认)

multipart/form-data: 不对字符编码,或在使用包含文件上传控件的表单时,必须使用该值。

text/plain:空格转换为 "+" 加号,但不对特殊字符编码。

二、enctype:规定了form表单在发送到服务器时候编码方式,有如下的三个值。

1、application/x-www-form-urlencoded。默认的编码方式。但是在用文本的传输和MP3等大型文件的时候,使用这种编码就显得 效率低下。

2、multipart/form-data 。 指定传输数据为二进制类型,比如图片、mp3、文件。

3、text/plain。纯文体的传输。空格转换为 “+” 加号,但不对特殊字符编码。

C. 数据库里input 、accept 、wait 三条命令的功能是什么意思

都是数据输入命令,input和accept主要是接收数据,wait实现等待功能。

但是accept只能接收字符串,而且输入时不能加定界符(如双引号等),否则系统会把定界符作为字符串的一部分。

input可以接收各种类型数据,但输入字符串时要加定界符(如双引号),输入逻辑型要用圆点定界(如.T.,.F.),输入日期型要用大括号(如{^2008-12-1}

(3)文件上传控件type属性扩展阅读:

作用

在文件上传控件(input type='file')中,可以通过accept属性实现对文件类型的过滤。

一、相关代码:

下面给出对应的文件上传控件代码:

<input type="file" id="myFile" accept="image/jpeg,image/gif,application/msword"/><br/>

上面的代码表示限制文件上传类型为.jpg/.gif/.doc。

二、限制规则:

在文件上传控件的accept属性中,接受以下两种格式的限制符:

文件类型,但不限制具体扩展名,如:image/*,就只要是图片就行。

文件类型+具体的文件扩展类型,如:image/jpeg,使用的是MIME_TYPE类型

多个MIME_TYPE类型之间用逗号分隔。

三、accept属性具体接受的类型:

accept这个属性,只在FF,ie10和chrome中有效。

D. file控件怎么上传多个文件

File控件是一个必须结合服务器端功能才能实现的纯客户端控件。

要使得文件上载能够成功,要做到以下几点:

INPUT type=file 元素必须出现在 FORM 元素内。
必须为 INPUT type=file 元素指定 NAME 标签属性的值。
FORM 元素 METHOD 标签属性的值必须设置为 post。
FORM 元素 ENCTYPE 标签属性的值必须设置为 multipart/form-data。
要处理上载到服务器的文件,服务器端进程必须可以处理 multipart/form-data 的提交。例如,Microsoft Posting Acceptor 能够允许 Microsoft Internet Information Server (IIS) 接受文件上载。而在网上也可找到其它的 Common Gateway Interface (CGI) 脚本用于处理 multipart/form-data 提交。

用户选择要上载的文件并提交页面后,该文件作为请求的一部分上载。文件将被完整地缓存在服务器内存中。

File控件一次只能上传一个文件,并且其文件属性值都是只读的。采用File控件同时上传多个文件,实际上是动态生成多个File控件,每选择上传一个文件,隐藏该控件,生成另一个File控件。这里只需要简单的JavaScript技巧既可以实现,所以不做赘述。

以ASP.NET为例,介绍在服务器端所需要进行的处理。

//获取上传文件列表

HttpFileCollection fileCollection = HttpContext.Current.Request.Files;

//逐个上传每个文件
for (int index = 0; index < HttpContext.Current.Request.Files.Count; index++)
{
HttpPostedFile postedFile = HttpContext.Current.Request.Files[index];
filename = postedFile.FileName;
if (postedFile.FileName != "")
{
postedFile.SaveAs(uploadPath);
}
}

E. form表单中的enctype="multipart/form-data"什么意思怎么这个属性老难记了!

enctype就是encodetype翻译成中文就是编码类型的意思!multipart/form-data是指表单数据有多部分构成:既有文本数据,又有文件等二进制数据的意思。
另外需要注意的是:默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据。
对于文件上传工作,其实是在前端完成的,即,在php,java等语言处理之前,文件其实就已经被上传到服务器了,服务器脚本语言的作用不过是将这些临时文件持久化而已!

F. input type file上传文件问题

这个直接是没法做到的。你可以换个思路试试,用一个变量先将type=file的这个的value值保存起来。然后上传文件完成后再将这个变量的值赋值给这个的value 就可以了。可以试试。
希望可以帮到你。

G. 如何使用VisualC#WinForm 实现文件上传功能

在Web编程中,我们常需要把一些本地文件上传到Web服务器上,上传后,用户可以通过浏览器方便地浏览这些文件,应用十分广泛。
首先,在你的VisualC#webproject中增加一个上传用的WebForm,为了要上传文件,需要在ToolBox中选择HTML类的FileField控件,将此控件加入到WebForm中,然而此时该控件还不是服务端控件,我们需要为它加上如下一段代码:<inputid=uploadfile1type=filesize=49runat=server>,这样它就成为服务端控件了,如果需要同时上传数个文件时,我们可以相应增加此控件。
需要注意的是代码中一定要把<form>的属性设置成为:

H. ng2 file upload 跨域上传文件怎么弄

先讲讲如何跨域,跨域方法很多,访问方式其实与本域名访问没有很大不同。简单列举几个:

  • 使用window.postMessage实现跨域通信。

  • 使用ajax异步加载其他网站资源,如加载QQ登陆成功的资料。

  • 头部的css、js,img标签中的src等,都可以填写外部的链接,都算跨域。

  • 然后再讲讲异步文件上传,异步上传和异步上传文件其实很类似,下面是使用jq的ajaxupload插件进行上传的示例

  • $.ajaxFileUpload({url:'upload.action',//用于文件上传的服务器端请求地址secureuri:false,//一般设置为falsefileElementId:'upload',//文件上传控件的id属性<inputtype="file"id="upload"name="upload"/>dataType:'json',//返回值类型一般设置为jsonsuccess:function(data,status){//服务器成功响应处理函数alert(data.message);//从服务器返回的json中取出message中的数据,其中message为在struts2中action中定义的成员变量$("#img").attr("src",data.imagePath);if(typeof(data.error)!='undefined'){if(data.error!=''){alert(data.error);}else{alert(data.message);}}},error:function(data,status,e){//服务器响应失败处理函数alert(e);}});

I. 新版UpLoad 控件,中的AcceptFileTypes属性应该怎么设置

AcceptFileTypes=".jpg,.jpeg,.gif,.png,.bmp,.xls"
显示为自定义文件
protected readonly static List<string> VALID_FILE_TYPES = new List<string> { "jpg", "bmp", "gif", "jpeg", "png" };

J. JS实现文件上传时候,火狐可以正常上传,IE却上传不了,可以获取上传的路径,使用的是type=“file”控件

尊敬的用户,您好!很高兴为您答疑
你遇到的是js控件属性兼容的问题。
function getPath(obj) {
if (obj) {
if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
obj.select()();
return document.select() ion.createRange().text;
} else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
if (obj.files) {
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}
请您尝试以上代码。
如果仍然有兼容问题,请考虑使用jquery。
希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。