我正在使用php下载文件,而不是在新窗口中打开文件本身。对于较小的文件似乎可以正常工作,但对于较大的文件则无法工作(我需要在大型文件上使用)。这是我必须下载文件的代码:
function downloadFile($file) {
if (file_exists($file)) {
//download file
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: '.filesize($file));
ob_clean();
flush();
readfile($file);
exit;
};
};
但是,当我尝试下载大文件(例如265mb)时,浏览器告诉我找不到文件吗?文件一定在服务器上,脚本对于较小的文件也可以正常工作。有什么方法可以下载类似于我已有的大文件?
PHP对脚本可以运行多长时间以及可以使用多少内存有限制。脚本可能在完成之前就已超时,或者通过读取大文件而占用了过多的内存。
尝试调整中的max_execution_time
和memory_limit
变量php.ini
。如果您无权访问php.ini
,请尝试set_time_limit
)和/或ini_set
函数。
我将nginx作为带有PHP-fpm的web服务器。我可以成功地看到我的网站使用http,但如果我使用https,我将下载索引页面,页面将不会显示。 我的nginx.conf 和conf.d/default。形态
问题内容: 我正在将站点安装在Droplet中(数字海洋)。我在使用PHP正确安装NGINX时遇到问题,但是当我尝试运行一些.php文件正在下载…例如,它正在工作,但是…如果我进入主目录,它将下载我的index.php:/ 任何的想法? 我的/ etc / nginx / sites-available / default …评论其他“位置”(#) 问题答案: 尝试这个: 编辑 取消注释两个侦听行
我正在使用ChromeWeb驱动程序2.10 chromedriver_win32。使用SeleniumWebDriver 2.31压缩。2. 启用详细日志记录后,似乎期望的能力(https://sites.google.com/a/chromium.org/chromedriver/capabilities)传递得很好, 但Chrome Web驱动程序正在播放*。mp4而不是下载。 我尝试过如何
那么这里有什么解决方案可以使用php在线阅读excel或google电子表格呢? 更新: 建议@adyson使用相同的头来获取PHP下载的数据。 谢谢。
问题内容: 我需要使用curl下载远程文件。 这是我的示例代码: 但是它不能处理大文件,因为它首先读取内存。 是否可以将文件直接流式传输到磁盘? 问题答案:
我们有一个运行在Linux上的Weblogic服务器,有多个受管服务器。我所关心的托管服务器的最大堆大小为1024MB。该服务器上部署了多个应用程序。其中一个应用程序处理来自REST api的响应来下载250MB的文件。对于大于50 MB的文件,有时没有问题,但有时服务器会因OOM错误而崩溃。以下是我的代码: 由于存在内存问题,我尝试采用InpuStream方法。以下是更改后的代码: 此代码没有进