利用php实现来自浏览器的上传文件,支持文本,图片或其他二进制文件以及文件下载
时间: 2023-11-25 13:08:21 浏览: 38
上传文件可以使用HTML中的`<form>`元素和`<input type="file">`来实现。下面是一个简单的HTML表单:
```html
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="上传文件" name="submit">
</form>
```
这个表单包含一个文件选择框和一个提交按钮。当用户选择文件并点击提交按钮时,表单数据将被发送到`upload.php`页面进行处理。
在`upload.php`页面中,我们需要使用PHP的`move_uploaded_file()`函数将上传的文件保存到服务器上的某个位置。下面是一个简单的上传文件处理代码:
```php
<?php
if(isset($_POST["submit"])) {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// 允许上传的文件类型
$allowedTypes = array('txt', 'png', 'jpg', 'jpeg', 'gif', 'pdf');
if(!in_array($imageFileType, $allowedTypes)) {
echo "只允许上传以下类型的文件: txt, png, jpg, jpeg, gif, pdf.";
$uploadOk = 0;
}
// 检查文件是否已经存在
if (file_exists($target_file)) {
echo "文件已经存在.";
$uploadOk = 0;
}
// 检查文件大小
if ($_FILES["fileToUpload"]["size"] > 5000000) {
echo "文件太大了,只允许上传5MB以下的文件.";
$uploadOk = 0;
}
// 如果没有出现错误,则上传文件
if ($uploadOk == 0) {
echo "文件没有上传.";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "文件". basename( $_FILES["fileToUpload"]["name"]). "上传成功.";
} else {
echo "上传文件时出现了错误.";
}
}
}
?>
```
这个代码首先检查上传文件是否符合要求,包括文件类型、文件大小和文件是否已经存在等。如果上传的文件符合要求,则使用`move_uploaded_file()`函数将文件移动到服务器上的指定位置。在这个例子中,我们将文件保存到了`uploads/`目录下。
如果您想要实现文件下载,则可以创建一个下载链接,将文件的URL作为链接的href属性值,如下所示:
```html
<a href="http://example.com/uploads/myfile.txt" download>下载文件</a>
```
在这个例子中,当用户点击“下载文件”链接时,浏览器会自动下载名为`myfile.txt`的文件。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)