在发送给用户之前重命名文件?

2024-03-23

这可能是一个非常简单和愚蠢的问题,但我不知道我会如何去做。

我正在用 PHP 为客户端站点构建一些文件托管功能。我在一个目录中有一个中央文件存储库。这是因为如果多人上传同一文件,客户端希望维护每个文件的一份副本(基于文件的“哈希”)。文件在转储到此目录(日期时间+一些代码)之前会被重命名,以避免文件名冲突。文件的原始名称保存在数据库中。

问题出在哪里,我不知道当用户请求下载文件时如何将文件重命名为原始文件名?我可以在另一个目录中创建它的临时副本,但我认为这会变得混乱。我希望有更好的方法。我看过另一篇文章

Response.AppendHeader("content-disposition", "attachment; filename='MyFile.jpg'"); 

但那是在 ASP 中。有人能指出我正确的方向吗?

非常感谢

Ted


在 PHP 中它是类似的: 看到header http://php.net/manual/en/function.header.php功能

从该页面上的示例:

<?php
// We'll be outputting a PDF
header('Content-type: application/pdf');

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// The PDF source is in original.pdf
readfile('original.pdf');
?>   
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在发送给用户之前重命名文件? 的相关文章

随机推荐

  • Angular Material Stepper - 如何动态创建组件以加载到步骤中

    我看过很多类似的帖子 我希望能够使用 ngFor创建组件然后加载到步骤中材料步进机 https material angular io components stepper overview 我一直在关注一个动态加载示例 https sta
  • Symfony 2.8+,教义继承和形式

    在开始之前 请注意我正在学习 symfony 所以请记住这一点 我只是想了解它是如何工作的 这就是我想要实现的目标 我想使用学说制作一个实体继承的简单示例 这就是我的示例的样子 摘要父类 特点 儿童1班 Magician 儿童2班 Warr
  • 如何更改mvc3中razor中LabelFor的显示名称?

    在我用过的剃须刀引擎中LabelFor显示名称的辅助方法 但显示名称似乎不太好显示 所以我需要更改我的显示名称该怎么做 Html LabelFor model gt model SomekingStatus new class contro
  • OpenCV - 薄板样条翘曲的合适实现

    我有一张脸的形状以及该脸的重建 我想对初始形状的相应图像进行建模 基本上 我想将点从原始形状移动到面部重建指示的位置 我尝试通过使用薄板样条翘曲来做到这一点 它的实现如下 http ipwithopencv blogspot ro 2010
  • 在 Asp.Net Mvc 中使用 Ajax 刷新表列表

    我的模式有问题 在创建新条目后 我的表列表没有显示表中最后创建的行 在我的数据库中它已经存在 它仅在刷新页面后才显示 我尝试了一些东西 但只第一次起作用 来自 在 ASP NET MVC 中使用 AJAX 刷新表 https stackov
  • 使用ajax url调用函数

    希望我能正确地问这个问题 因为我知道我想要它做什么 但似乎无法从搜索中找到任何答案 我有一个 func php 页面 其中包含所有函数 并且我希望 ajax 使用该页面中的一个函数 func php function toptable ec
  • Python DataFrame 从每日数据中选择每月增量的行

    让我们直接进入问题吧 以下为每日数据 AAA BBB CCC date 2012 04 16 44 48 28 48 17 65 2012 04 17 44 59 28 74 17 65 2012 04 18 44 92 28 74 17
  • CouchDB 对 _users 数据库的读/写限制

    我想限制用户权限 以便普通用户只能读 写自己的用户文档 我设法设置写入权限 以便用户只能编辑自己的文档 通过设计文档中的 validate doc update 函数 现在我只需限制用户查看用户列表或其他用户文档即可 如果我将数据库读取权限
  • 使用 Scala Slick 实现高阶函数,实现 DRY 优点

    我知道我的 Scala Slick 数据访问层应该是什么样子 但我不确定这是否真的可能 假设我有一个 User 表 其中包含 id 电子邮件 密码等常用字段 object Users extends Table String String
  • Sailsjs/waterline 指定模型中的小数位数

    我如何告诉我的帆模型我想要一些特定的小数位type float 属性 喜欢decimalPlaces 4或者类似的东西 问题是 当我向此条目发布值时 磁盘上的值会被截断为 00 数百 个地方 说我想要 3243 2352362按原样存储 目
  • ENOENT:没有这样的文件或目录。?

    这是发布数据和文件时出现的错误 我遵循 academind 教程来构建 Restful API 服务 我也一直在寻找此类错误的答案 但对我来说没有任何作用 我使用 multer 上传文件 文件夹 上传 在文件夹中可用 但显示 ENOENT
  • Tomcat context.xml 中的资源名称属性如何工作?

    我们正在使用 JNDI 来查找我们的数据库连接 在Tomcat的全局context xml文件中 我们有类似以下内容
  • 什么是 0x43 MIDI 事件?

    我正在尝试编写一个 MIDI 解析器 但我遇到了官方文档中未记录的 MIDI 事件 即http www midi org techspecs midimessages php http www midi org techspecs midi
  • PostgreSQL:间隔“10 天”和当前行之间的范围

    我有一张表 用于存储每件商品的每日价格 如果价格尚未更新 则当天没有该商品的记录 我需要编写一个查询 为每个商品检索最新价格 并具有从当前行日期起 10 天的回溯窗口 否则返回NULL 我想用一个来实现这一点RANGE BETWEEN IN
  • 在 REST Assured 中,如何设置超时?

    我正在使用 RestAssured 2 8 0 我正在尝试设置自己的超时 用于网关超时 因此 如果我在 X 毫秒后没有得到响应 我想中止 I tried public static ValidatableResponse postWithC
  • 使用另一种类型过滤一种类型的键

    我正在尝试创建一种类型 如果它们不出现在另一种类型中 则该类型将递归地排除一种类型中的键 例如 给定两种类型 type TargetType a true b c true d true type InputType a string b
  • Cordova 无法添加 Android 失败,退出代码为 ENOENT

    I am trying to create an Android project with Cordova however i am getting an ENOENT error although i followed the tutor
  • 如何让 emacs 正确显示多字节编码文件?是骡子吗?

    当我打开多字节文件时 我得到 短期内 您可以使用备用编码系统重新访问该文件revert buffer with coding system 然后选择utf 16le 从中期来看 您可以在加载时提高 utf 16le 编码的优先级prefer
  • 获取全文搜索配置语言的完整列表

    to tsvector 支持多种语言 英语 德语 法语 如何获得这些语言的完整列表 有手册中的说明 https www postgresql org docs current textsearch psql html如何使用 psql 检索
  • 在发送给用户之前重命名文件?

    这可能是一个非常简单和愚蠢的问题 但我不知道我会如何去做 我正在用 PHP 为客户端站点构建一些文件托管功能 我在一个目录中有一个中央文件存储库 这是因为如果多人上传同一文件 客户端希望维护每个文件的一份副本 基于文件的 哈希 文件在转储到