- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用其他文本字段在普通表单中上传文件。
到目前为止,文件已上传到临时文件夹,但没有上传到我的目标文件夹,我总是收到此错误“文件‘上传’被非法上传。这可能是一次可能的攻击”。
我已经检查了临时文件的文件名,并且在正确的文件夹中有正确的 url。
我在这里错过了什么。
$form = new Zend_Form();
$form->setAttrib('enctype', 'multipart/form-data');
$form->setMethod('post')
->addElement('file', 'pdf', array(
'size' => '40',
'label' => 'Select File',
'required' => true,
'validators' => array(
'Size' => array('min' => 20, 'max' => 1000000)
)
)
)
->addElement('submit', 'Save')
;
if ( $this->getRequest()->isPost() ) {
if ( $form->isValid($this->getRequest()->getParams()) ) {
$id = $form->getValue('name');
$upload = new Zend_File_Transfer_Adapter_Http();
$uploadDestination = APPLICATION_PATH . '/../public/uploads/'.$id;
if(!is_dir($uploadDestination)){
mkdir($uploadDestination, 0777, true);
}
$upload->setDestination($uploadDestination);
echo $upload->getFileName();
if($upload->receive('pdf'))
{
echo '<pre>';
print_r($form->getValues());
die();
}
else
{
$messages = $upload->getMessages();
echo implode("\n", $messages);
die();
}
$上传->接收('pdf');是什么不能正常工作。
最佳答案
自从提出这个问题后,认为 Zend Framework 中的事情可能有所改进。
下面的代码显示了一个强大的文件验证的工作示例,包括自定义的错误消息。
关键是 Zend_Form::isValid() 方法就是您所需要的,您不需要单独验证文件传输
您的表单定义,请注意文件验证器被添加就好像它们是普通验证器一样
class Jogs_Form_ImportForm extends Zend_Form
{
public function init()
{
$this->setAttrib('enctype', 'multipart/form-data');
$this->setAttrib( 'id', 'form-import' );
$importAction = $this->addElement('radio', 'importAction', array(
'multiOptions' => array(
'components' => 'Import components',
'layouts' => 'Import layouts',
'layoutComponents' => 'Import layout components',
),
'required' => true,
'label' => 'Import Type:',
));
$upload = $this->addElement( 'file', 'import-file', array(
'label' => 'Text (tab delimited) file (.txt)',
'validators' => array(
'Size' => array('max' => 10*1024*1024),
'Extension' => array('txt', 'messages' => array(
Zend_Validate_File_Extension::FALSE_EXTENSION
=> 'file must end with ".txt"' ) ),
'MimeType' => array( 'text/plain', 'messages' => array(
Zend_Validate_File_MimeType::FALSE_TYPE
=> 'file must be text (tab delimited)' ) ),
)
) );
$go = $this->addElement('submit', 'go', array(
'required' => false,
'ignore' => true,
'label' => 'Go',
));
}
}
你的 Controller 类
class ImportController extends Zend_Controller_Action
{
public function indexAction(){
$form = new Polypipe_Form_ImportForm();
$this->view->form = $form;
if (
$this->getRequest()->isPost()
&&
$form->isValid( $this->getRequest()->getPost() )
){
$data = $form->getValues();
// get the file info
$ft = $form->getElement('import-file')->getTransferAdapter();
$fileInfo = $ft->getFileinfo();
}
}
}
关于php - Zend framework file upload 非法上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4534301/
我在项目中使用ngx-uploader实现文件上传。 但是当我上传多个文件时,它将文件数组分成多个请求。 我尝试使用 ng2-file-upload 但结果相同。 最佳答案 请参阅 GitHub 上的
我想要一个类似 this 的上传者但我想要一个进度条,并在完成后通过电子邮件向我发送通知,就像 yousendit 那样。 任何开源的东西都会很酷。 最佳答案 Uploadify允许有进度条。至于电子
我正在尝试编写一个Python脚本,可以将图片和pdf上传到WordPress。我希望图像上传到文件夹‘/wp-Content/Uploads/’,将pdf文件上传到文件夹‘/wp-Content/U
开发自定义 portlet 以在 Liferay 6.2 中上传多个文件。 在以下位置的文档库 Portlet 中浏览 Liferay 源代码时找到 Liferay.Upload 组件: https:
我正在尝试使用 HTML5 制作一个带有进度表的文件 uploader 。这是我的代码: Test Progress Meter function submit
当我选择一些图像并放入 WordPress 文件 uploader 时,该组的第一张图像此时似乎已正确上传,而其他图像则卡住且未得到处理。 但是,经过一段时间的等待,我停止了该进程,重新加载了浏览器选
我今天刚刚从 Cordova (PhoneGap) 1.5 升级到 1.9,突然我的 FileTransfer 参数停止发布。我可以说出来,因为我让服务器端调试了 $_POST 参数,它们现在是空白的
我已经在运行 RHEL7 的服务器上安装了 Mediawiki v1.24.1。 我已经将它安装在/var/www/foohelp/wiki 下。但是,当我尝试上传文件时,出现以下错误: [f3eae
在 Symfony2 中上传图片时,有没有办法调整图片大小? ImagineAvalancheBundle只允许在检索图像时将图像大小调整为缩略图,这对我来说并不是真正的性能。 此外,在发布数据时检索
我在网站上使用blueimp-file-upload,并且在使用webpack来组织我的js代码。 我从NPM安装了blueimp-file-upload和jquery.ui.widget npm i
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我需要获取上传的文件以将其推送到文件列表,但我无法做到这一点...我希望有人可以帮助我: UIkit.upload('.test-upload', { url: `/api/gridfs/${d
我基本上是一名 Java 开发人员,仅了解有关 Android 开发的基本信息。我开发了一个 Web 端点,它接受文件和一些其他参数。 java代码是 @RequestMapping(path = "
我正在使用 symfony.com 的食谱文章来实现图像的文件上传选项。 现在我想将其他图像加载到实体中。 默认的编辑策略是: 1.从数据库中取出 2. 注入(inject)表单 3.坚持 不知何故,
我需要处理通过(有和没有分块)上传到 Amazon S3 的每个文件的二进制数据。你知道 Fineuploader 中是否有我可以用来处理每个二进制 block /文件的函数/信号吗?: 例如: pr
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我读到 HTML5 规范引入了在上传表单中选择多个文件的功能。目前有哪些浏览器支持这个? Adobe AIR 是否支持它? 额外的问题:是否有利用此功能的 JavaScript 库? 最佳答案 即将发
我正在评估 Fine Uploader与其他各种选项相比,特别是 JQuery File Upload . 与依赖 Bootstrap 和 JQuery UI 的 JQuery File Upload
我正在尝试通过 Swift 2/Alamofire 将文件和参数上传到 Google 云端硬盘。在下面的代码中,我更改了以下行: "https://www.googleapis.com/upload/
我正在使用 Kendo UI Upload Control 并希望在同步模式下允许多个文件,但是当同时添加多个文件时,它们被组合在同一行项目中。有没有办法在组选择时将每个单独的文件作为自己的行项目?在
我是一名优秀的程序员,十分优秀!