php让浏览器下载txt等类型的文件

如果让浏览器访问一个txt文件,会发生什么呢?比如访问localhost/test/test.txt,chrome浏览器会直接把TXT文件的内容

直接显示在浏览器上,而不是下载下来。


但是也不是所有的文件都会被直接读取在浏览器上,像.zip、.doc等文件就会被直接下载,像.jpg,.png,.txt文件

就会被直接读取。有时候,txt等文件比较大的时候,我们不希望浏览器直接读取出来,对服务器压力也比较大。

这时,指定header头信息就可以办到:

		$file = fopen($url, "r");  //打开文件url
		header("Content-Type: application/octet-stream"); //指定mime类型为八进制文件流
		header("Accept-Ranges: bytes");
		header("Accept-Length: ".filesize($url));
		header("Content-Disposition: attachment; filename=$name");  //$name是文件的名字,一般在$url的最后
		echo fread($file,filesize($url));
		fclose($file);


此时$url指定的文件就可以下载而不是直接读取了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
上传文件可以使用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`的文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值