php 文件 字节数组,PHP使用Zend_Form接收文件作为字节数组

我们在PHP应用程序中使用Zend_Form来构建输入文件html元素.我们可以设置此元素的“目标”,并且在调用receive()时,文件将保存到指定位置.

我们希望根本不将文件保存到光盘,而是将文件抓取为字节数组并对其进行其他处理.

这可能吗?如果Zend_Form()无法实现,是否可以通过其他方式完成?

编辑:我们之所以无法写入磁盘,是因为该应用程序在Azure上运行,并且它似乎没有任何写访问权限,即使在temp文件夹中也是如此.我们从Zend那里得到一个例外,说“给定的目标不可写”.

解决方法:

无论是否使用Zend,所有PHP上传文件都将写入文件系统(请参阅upload_tmp_dir和POST method uploads).

Files will, by default be stored in the server’s default temporary

directory, unless another location has been given with the

upload_tmp_dir directive in php.ini.

您可以尝试使用$_FILES数组直接访问该文件,而不是使用接收来处理上载,这将使您可以使用file_get_contents()或类似函数将文件读取为字符串.但是,您仍然可以大体上使用Zend_Form创建和处理该表单.

您可以设置共享内存upload_tmp_dir以将文件系统映射到保存上载文件的内存.请谨慎对待,好像有人试图上传一个非常大的文件,它将进入内存,这可能会影响性能或您的服务成本.

最终,Zend_File_Transfer_Adapter_Http :: receive()调用move_uploaded_file()将文件从其临时位置移动到永久位置.另外,它可以确保上传有效并对其进行过滤,并将其标记为已接收,因此无法再次移动(否则将失败).

标签:file,upload,zend-form,zend-framework,php

来源: https://codeday.me/bug/20191201/2082091.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值