利用PHP程序文件上传功能 要求如下: 1 前段采用html+css+js布局 2 数据传输采用form表单传递 3 后端必须采用PHP程序处理 4 文件上传需要效验:大小、扩展名、空文件等 5 上传成功以后再前端展示上传的图片效果
时间: 2024-11-25 18:11:45 浏览: 3
在PHP中实现HTML+CSS+JS布局的文件上传功能,你可以按照以下步骤操作:
1. **HTML部分**:
创建一个HTML表单,包含文件选择输入 `<input type="file" id="fileInput">` 和提交按钮 `<button type="submit">上传</button>`。添加一些基本样式用CSS美化。
```html
<form action="upload.php" enctype="multipart/form-data" method="post">
<input type="file" id="fileInput" name="fileToUpload">
<input type="submit" value="上传">
</form>
```
2. **CSS部分**:
添加相应的CSS规则,如设置表单样式、提示信息等。
3. **JavaScript部分**:
可以用来做预览或者限制文件类型等功能,但数据验证主要会在服务器端完成。
4. **PHP部分 (upload.php)**:
- 首先,检查表单是否已提交,并获取用户选择的文件。
- 使用 `move_uploaded_file()` 函数将文件移动到服务器的指定目录。
- 添加文件上传验证:
- 检查文件是否为空 (`$_FILES['fileToUpload']['size'] > 0`)。
- 检查文件大小,例如小于1MB (`filesize($file) <= 1048576`)。
- 检查文件扩展名,只允许特定类型的文件(例如`.jpg`, `.png`),可以用`pathinfo`函数。
```php
<?php
if(isset($_POST['fileToUpload'])) {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$allowed_extensions = array('jpg', 'jpeg', 'png');
if ($_FILES["fileToUpload"]["error"] == UPLOAD_ERR_OK) {
$file_name = pathinfo($target_file, PATHINFO_FILENAME);
$ext = pathinfo($target_file, PATHINFO_EXTENSION);
if(in_array($ext, $allowed_extensions) && $_FILES["fileToUpload"]["size"] <= 1048576) {
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
echo "文件上传成功!<br>";
echo "<img src='$target_file' alt='Uploaded image'>";
} else {
echo "上传失败,文件类型或大小不符合要求!";
}
}
}
?>
```
5. **前端展示**:
如果文件上传成功,会显示一个图片链接,这是通过HTML `<img>` 标签生成的。注意要确保服务器访问权限允许图片的显示。
阅读全文