通过form表单input标签设置type属性为file实现创建FileUpload 对象可以上传文件…
通过form表单input标签设置type属性为file实现创建FileUpload 对象可以上传文件,但是需要注意的点是:
1、表单提交方式需要是 post
2、form 添加一个属性为 enctype="multipart/form-data"
html如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HTML文件上传(一) 注意事项</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<p><input type="file" name="file_name"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
后端接收以php为例,upload.php 代码如下:
<?php
// 文件上传方法
function file_upload(){
$result = array('code'=>40000,'msg'=>'失败');
if(!isset($_FILES) || !$_FILES){
return $result;
}
$path = './uploads/'; // 上传路径
$newname = date('YmdHis'); // 保存的文件名
$suffix = strtolower(pathinfo($_FILES["file_name"]["name"], PATHINFO_EXTENSION)); // 文件后缀
$newFilePath = $path.$newname.'.'.$suffix;
// 将上传的文件移动到新位置
if(!move_uploaded_file($_FILES["file_name"]["tmp_name"],$newFilePath)){
$result['code'] = 30000;
$result['msg'] = '文件上传出错了';
return $result;
}
$result['code'] = 10000;
$result['msg'] = '文件上传成功';
$result['path'] = $newFilePath;
return $result;
}
// 调用文件上传方法
$result = file_upload();
print_r($result);
exit;
?>
上传成功后会获得文件路径
Array
(
[code] => 10000
[msg] => 文件上传成功
[path] => ./uploads/20200423220359.jpg
)
扩展资料:
一、关于HTML <form> 标签的 enctype 属性
1、application/x-www-form-urlencoded:在发送前编码所有字符(默认)。
2、multipart/form-data: 不对字符编码,或在使用包含文件上传控件的表单时,必须使用该值。
3、text/plain:空格转换为 " " 加号,但不对特殊字符编码。
二、enctype:规定了form表单在发送到服务器时候编码方式,有如下的三个值。
1、application/x-www-form-urlencoded。默认的编码方式。但是在用文本的传输和MP3等大型文件的时候,使用这种编码就显得 效率低下。
2、multipart/form-data 。 指定传输数据为二进制类型,比如图片、mp3、文件。
3、text/plain。纯文体的传输。空格转换为 “ ” 加号,但不对特殊字符编码。