学做网站培训课程介绍

当前位置:

如何使用Input表单制作网站上传文件功能

做网站时,有时需要在网站前台制作一个表单,表单里有点击上传图片的功能。怎么自己使用PHP制作这种网站前台表单上传图片到服务器功能呢?

如何使用Input表单制作网站上传文件功能

下面分享一下制作过程以及实现的代码。

通常我们制作前台上传图片功能,是将上传按钮放在一个表单里。所以我们需要先制作一个FORM表单;


<form target="id_iframe" action="imgload.php" method="post" enctype="multipart/form-data" id="formfavicon" onkeydown="if(event.keyCode==13){return false;}">
<div class="mbk_lif">
<span class="mbk_inputtit">ICO图标上传</span>
</div>
<div class="mbk_lir">
<input type="file" id="upfavicon" name="fileToUpload" >
</div>
</form>

这个表单需要注意的二点:

必须加enctype=”multipart/form-data” 这个属性,否则将无法实现上传功能;

form提交的地址为一个php文件imgload.php。

下一步就是制作图片上传功能处理文件imgload.php;新建一个空白的文件,粘贴以下的代码,保存为imgload.php;


$targetDir = WP_CONTENT_DIR . '/uploads/csv_uploads/';
//如果不是wordpress就使用下面的路径
//$targetDir = "images/";

//添加权限
if (!file_exists($targetDir)) {
mkdir($targetDir, 0755, true); // Create the directory if it doesn't exist
}
$targetFile = $targetDir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($targetFile,PATHINFO_EXTENSION));
// 检查文件是否为图片
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
//echo "文件是一个有效的图片 - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
die( "<span class='tishiwz'>文件不是一个有效的图片.</span>");
}
// 检查文件是否已存在并重命名
if (file_exists($targetFile)) {
while (file_exists($targetFile)) {
// 生成唯一文件名
$filename_parts = pathinfo($targetFile);
$new_filename = $filename_parts['filename'] . '_' . time() . '.' . $filename_parts['extension'];
$targetFile = $targetDir . $new_filename;
}
}
// 检查文件大小
if ($_FILES["fileToUpload"]["size"] > 3000000) {
die( "<span class='tishiwz'>对不起,文件过大,不要超过3MB.</span>");
}
// 允许上传的文件格式
$allowedTypes = array("jpg", "jpeg", "png", "gif");
if (!in_array($imageFileType, $allowedTypes)) {
die( "<span class='tishiwz'>对不起,只允许上传JPG, JPEG, PNG 和 GIF 文件.</span>");
}
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) {
echo "<span class='tishiwz'>文件上传成功:" . basename( $_FILES["fileToUpload"]["name"])."</span>";
} else {
echo "<span class='tishiwz'>对不起,文件上传失败,请重新上传.</span>";
}

这段代码中$targetDir = “images/” 为图片保存的路径文件夹,这个文件夹位置是相对于form表单网页的;

if (file_exists($targetFile)) {}为检测是否已上传到同名的图片,如果有同名,将自动重命名;

if ($_FILES[“fileToUpload”][“size”] > 3000000) {}为控制图片上传的大小,最大为3M;

$allowedTypes = array(“jpg”, “jpeg”, “png”, “gif”);为允许上传图片的格式;

通过以上的代码,就可以在表单里制作出一个图片上传功能了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

相关教程

  • 这个教程将讲解Wordpress + Elementor可视化开发外贸独立网站的整个过程,将以视频案例的方式一步步讲解如何可视化开发外贸独立网站。以下是可视化开
  • 制作外贸网站时,如果想在网站的网页中嵌入地图,我们需要嵌入英文版地图。如下图:怎么做到嵌入这样的英文版地图呢,下面学做网站论坛就来介绍一下
  • 网站导航菜单中常见的有二级下拉菜单,这个制作起来相对比较简单。如果网站项目比较多时,可以制作三级下拉菜单,可以更好的展示项目。如下图:怎么
  • 现在很多网站都安装了SSL证书来实现加密访问,SSL证书一般是申请后可以使用一年,一年到期后再次申请重新布署。但有些站长会遇到这样的情况,网站旧
  • WordPress程序里的某个PHP文件,如果想连接数据库,一般需要填写数据库名、数据库用户、密码等信息,如下:<?php$conn=mysqli_connect(&qu
  • 我们做网站一般都是做自适应结构,不同用户使用不同的浏览设备可以浏览不同的版面的网站。但有时为了特殊的要求,我们不希望自己的网站手机端自适应,
  • 我们制作网站前台提交发布界面时,富文本编辑器常常使用kindeditor 编辑器,kindeditor 编辑器支持用户上传图片和附件,通常情况下编辑器是不限制附件
  • 帝国CMS建网站时,使用程序自带的菜单标签,可以生成纯A的菜单。[!--class.menu--]如果只想调用一级导航,可以使用以下的代码:<
  • notepad是一款比较好用的网页编辑软件,学建站网张启亚老师也一直在用notepad。notepad有一个比较实用的功能就是它会自动保存之前打开的文件列表,但
  • notepad是一款比较好用的网页编辑软件,学建站网张启亚老师也一直在用notepad。notepad有一个比较实用的功能就是它会自动保存之前打开的文件列表,但