如何实现访问apache时的目录浏览功能(apache file list view)

    我用apache做了一个文件分享功能的站点(如下图),可以实现了http模式的文件查看和下载。有的朋友看到了奇怪问这是怎么做到的,这其实只是一些appche服务器的基本功能,搞前端的coder也要了解一下服务器才好;下面来说具体的操作:
很简单
这里写图片描述

1.实现原理
    通过apache的一个模块:mod_autoindex 这个模块的主要功能是自动对目录中的内容生成列表,这样当我们对服务器地址进行访问时在浏览器端可以看到访问目录下文件列表,点击它浏览器能打开的则打开查看,不能打开的则弹出是否保存的对话框,当然也可以右键链接另存为,这样就实现了访问下载文件的功能,对于mod_autoindex更多知识 可以查看金步国apache手册翻译
(http://www.jinbuguo.com/apache/menu22/mod/mod_autoindex.html)

如果需要可以点击下载apache中文手册
(http://download.csdn.net/detail/chen_gong1992/9700259)
2.配置httpd.conf文件
    apache 的目录索引样式用的mod_autoindex模块 一般默认为开启状态
找到httpd.conf文件,查找下面的内容 如果有#号注释则去掉,没有这句话就补上去。这样就开启了mod_autoindex
LoadModule autoindex_module modules/mod_autoindex.so
另外 检查一下访问权限,如果发现下面有deny from all 请注释掉 改成allow from all。
这里写图片描述

3.设置请求目录
当从服务器请求一个目录的时候,可能来自:
    mod_dir的DirectoryIndex指定首页
    mod_autoindex目录
    如果你想直接访问mod_autoindex目录列表,那就删除服务器目录下的mod_dir的DirectoryIndex指定首页,或者在配置文件httpd.conf中修改。我在我的服务器目录C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs下放了一些文件,接下来在浏览器窗口输入http://127.0.0.1或者localhost进行本地访问下看看效果
这里写图片描述
是不是感觉真丑和上面图片显示差别太大了,别急接下来我们对目录显示进行优化。

4.优化显示
将下面的代码加到httpd.conf文件中

    Options Indexes FollowSymLinks
    IndexOptions FancyIndexing FoldersFirst NameWidth=* DescriptionWidth=* SuppressHTMLPreamble HTMLTable
    IndexOptions Charset=utf-8 IconHeight=16 IconWidth=16 SuppressRules
    IndexIgnore web header.html footer.html actions defects
    Header
  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
实现 Android Apache POI 文件浏览功能,可以按照以下步骤进行: 1. 在项目的 build.gradle 文件中添加 Apache POI 的依赖项: ``` implementation 'org.apache.poi:poi:4.1.2' implementation 'org.apache.poi:poi-ooxml:4.1.2' ``` 2. 在布局文件中添加一个用于显示文件内容的 TextView: ``` <TextView android:id="@+id/tv_file_content" android:layout_width="match_parent" android:layout_height="match_parent" android:textSize="16sp" android:padding="16dp" /> ``` 3. 在 Activity 中获取传递过来的文件路径,并使用 Apache POI 读取文件内容: ``` private void readExcelFile(String filePath) { try { InputStream inputStream = new FileInputStream(new File(filePath)); XSSFWorkbook workbook = new XSSFWorkbook(inputStream); XSSFSheet sheet = workbook.getSheetAt(0); StringBuilder sb = new StringBuilder(); for (Row row : sheet) { for (Cell cell : row) { sb.append(cell.toString()).append("\t"); } sb.append("\n"); } tvFileContent.setText(sb.toString()); workbook.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } ``` 4. 在 Activity 的 onCreate 方法中获取传递过来的文件路径,并调用 readExcelFile 方法: ``` @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_file_viewer); tvFileContent = findViewById(R.id.tv_file_content); String filePath = getIntent().getStringExtra("FILE_PATH"); readExcelFile(filePath); } ``` 这样就可以实现 Android Apache POI 文件浏览功能了。当用户点击一个文件,可以将文件路径传递给该 Activity,然后在该 Activity 中读取文件内容并显示在 TextView 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值