【问题标题】:Using uploaded file without saving to server disk使用上传的文件而不保存到服务器磁盘
【发布时间】:2011-03-26 16:19:53
【问题描述】:

我创建了一个 PHP 脚本来上传文件,不幸的是我没有将文件保存在磁盘上的权限。我必须上传一个excel文件(使用phpexcel),然后我必须读取文件中的所有行并保存到磁盘,有什么方法可以让我处理这个文件而不保存到磁盘,我试图读取$_FILES['file1']['tmp_name']但它不起作用。

您能否建议一种处理此文件的方法

感谢您的考虑

【问题讨论】:

  • 不允许在服务器的任何地方保存数据?为什么?这听起来像是配置错误。
  • 你需要更具体。编程就是细节。正如 Pekka 所说,告诉我们为什么您“无权将文件保存在磁盘上”。此外,当您说“它不起作用”时。它怎么行不通?请描述其行为,列出任何错误消息或其他输出。帮助我们为您提供帮助。

标签: php


【解决方案1】:

“保存到磁盘”是指将其发回给用户让他下载?

通常,您应该(至少)对 PHP 临时目录具有写入权限。您是否尝试过表单和脚本是否在本地环境中工作?也许上传还有什么问题?!

最后:为什么所以你没有保存文件的权限?您是否允许在您的 PHP 文件(通过 FTP)下创建一个子目录并授予该子目录完整权限?

【讨论】:

  • +1:“为什么”是这里的一个重要问题。这听起来像是一个严重的错误配置。
【解决方案2】:

我试图读取 $_FILES['file1']['tmp_name']

很可能您刚刚遇到了一个错误。
这种情况经常发生在初级程序员身上

您必须修复该错误,而不是寻找奇怪的解决方法。
从检查$_FILES['file1']['error']开始

做什么

var_dump($_FILES['file1']['error']);

说?

【讨论】:

  • “新手程序员”的评论可能不是每个人的口味,但这是一个非常有建设性的答案。为什么投反对票?
  • 如果“新手”这个词听起来很粗鲁,我愿意将其更改为任何政治正确的术语。
  • 我个人认为这并不粗鲁,但也许有人过于敏感了。那,或者是报复性的投票者。对这些无能为力...
  • 我没有投反对票,但我发现总体语气有些贬义。虽然你没有明确说出来,但答案可以理解为“你无法让它工作,所以你是菜鸟。你解决问题的尝试显然是愚蠢的”。您的答案和 cmets 经常出现这种情况。他们携带着很好的信息,但他们往往带着精英主义的态度。显然,我不是唯一这样想的人,因为我发现它们在版主工具中经常被标记为冒犯。只是我接受了 Col Shrapnel 使用了 Shrapnel 之类的词,不要打扰。
  • 我认为这篇文章目前的形式没有任何问题。我认为指出许多新手/缺乏经验的程序员犯了一个错误也是非常有建设性的。对我来说,上面写着“不要难过,很多人刚刚学习都会犯同样的错误”,所以 +1。
【解决方案3】:

您可以使用 HTTP PUT 方法使用一点点 Javascript 将文件发送到您的服务器,而不是使用表单(通过 HTTP POST 的多数据)发送文件。

这个场景在PHP官方文档中有描述->PUT method support.

由于文档中描述的一些限制,您必须采取一些变通方法才能使其正常工作。

您可以从您的网络服务器读取直接输入流。数据将从您的 Web 服务器传送到您的 PHP 程序,并且只会保存在内存中。 使用 jQuery 进行 PUT Ajax 调用得到了答复here。你可以使用像Uploadify这样的jQuery上传插件。

【讨论】:

    猜你喜欢
    • 2010-12-25
    • 2013-12-26
    • 2019-04-04
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多