当先锋百科网

首页 1 2 3 4 5 6 7
PHP和HTML5是网站开发中非常常用的两种技术,文件上传是网站中的一个重要功能,那么如何使用PHP和HTML5实现文件上传呢?本文将为大家详细介绍。 在网站中,我们往往需要用户上传文件,比如用户头像、用户资料等等。文件上传的实现方式有很多,最常用的方式是使用表单的方式,用户通过表单提交文件,接收者通过接收表单数据,将文件进行保存。下面是一个简单的文件上传表单。
<form action="upload.php" method="post" enctype="multipart/form-data">
<p>选择文件:</p>
<p><input type="file" name="fileToUpload" id="fileToUpload"></p>
<p><input type="submit" value="上传文件" name="submit"></p>
</form>
上述代码中,form标签的enctype属性值为multipart/form-data,需要加上这个属性值才能传输二进制文件。 下面是upload.php文件的代码:
<?php
$target_dir = "uploads/"; //设置上传目录
$uploadOk = 1; //上传标志位默认为1
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); //设置上传文件的目标文件名
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); //获取上传文件的扩展名
// 检查文件是否真的是一个文件
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "文件是一个图片 - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "文件不是图片.";
$uploadOk = 0;
}
}
// 检查文件是否已经存在
if (file_exists($target_file)) {
echo "文件已经存在.";
$uploadOk = 0;
}
// 检查文件的大小
if ($_FILES["fileToUpload"]["size"] >500000) {
echo "文件太大了.";
$uploadOk = 0;
}
// 允许上传的文件类型
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "只允许上传jpg, jpeg, png 和 gif的文件.";
$uploadOk = 0;
}
// 检查上传标志位是否为0
if ($uploadOk == 0) {
echo "文件没有上传.";
// 如果上传标志位为1,上传文件
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "文件 ". basename( $_FILES["fileToUpload"]["name"]). " 已经上传成功.";
} else {
echo "文件上传失败.";
}
}
?>
upload.php文件主要是接收表单提交的文件,然后进行一系列的判断,比如上传的文件太大,上传的文件类型不符等等。最后将上传的文件保存到指定目录中。 在HTML5中,我们可以使用File API的FileReader对象来实现预览上传的图片。下面是一个简单的HTML5文件上传预览例子。
<div>
<input type="file" name="picture" id="picture">
</div>
<div>
<img src="#" id="preview" alt="">
</div>
<script type='text/javascript'>
$(function() {
$("#picture").on("change",function(event){
// 选择的文件
var file = event.target.files[0];
var reader = new FileReader();
// 读取文件
reader.readAsDataURL(file);
reader.onload = function(e){
// 显示预览
$("#preview").attr("src",e.target.result);
}
});
});
</script>
上述代码中,我们通过FileReader对象读取上传的文件,然后通过获取的结果进行预览。这样用户可以在上传文件之后,看到文件的预览效果,从而更好的进行确认。 使用PHP和HTML5实现文件上传,可以为网站开发带来很多便利和优势。通过本文的介绍,相信大家已经掌握了文件上传的基本开发技能,实践起来也是非常简单易懂。