ファイルアップロードボタンがあるページを表示するには、fancy box iframeを使用しています。私がフォームを送信すると、私は "ファイルが定義されたiniのサイズを超えています"をクリックします。私はGoogleとstackoverflowの下でいくつかのリンクを確認した。しかし、見つけることができません。私はenctype="multipart/form-data"
を私のフォームに持っています。続いて、私は非常に奇妙な...私は私の画像をアップロードすることができ、インラインフレームを使用しなかった場合にも、私のコードiframeを使用しているときにファイルが定義されたiniサイズを超えています
public function createForm($data = array())
{
$this->setMethod(Zend_Form::METHOD_POST);
$this->setEncType(Zend_Form::ENCTYPE_MULTIPART);
$this->setAttrib('id', 'createsub');
$this->setAction(
$this->getView()->getHelper('url')->url(array(
'controller' => 'test',
'action' => 'create'
))
);
$this->setDecorators(array(
'Description',
'FormElements',
'Form'
));
$fnameNotEmpty = new Zend_Validate_NotEmpty();
$fnameNotEmpty->setMessage('Name cannot be empty.');
$fnameStrlen = new Zend_Validate_StringLength(1, 20);
$name = new Zend_Form_Element_Text('name', array(
'label' => 'Name:',
'value' => '',
'class' => 'text-size text',
'tabindex' => '1',
'required' => true,
'validators' => array(
array($fnameNotEmpty, true),
array($fnameStrlen, true)
),
'decorators' => $this->requiredElementDecorators,
'description' => '<img src="../../'.$baseurl.'/images/star.png" alt="required" />',
'filters' => array('StringTrim')
));
$this->addElement($name);
.... ..... .....
$brochure = new Zend_Form_Element_File('brochure', array(
'label' => 'Brochure:*',
'value' => '',
'class' => 'text-size text',
'tabindex' => '3',
'required' => true,
'filters' => array('StringTrim')
));
$this->addElement($brochure);
$submit = $this->createElement('button','addtbtn',array('class'=>'Test','label'=>'Create'));
$submit->setIgnore(true);
$this->addElement($submit);
return $this;
}
です。
は私がpublic function validateformAction()
{
$this->_helper->viewRenderer->setNoRender();
$this->_helper->getHelper('layout')->disableLayout();
$p = new Admin_Model_DbTable_Test();
$p = $p->getData();
foreach($p AS $k => $v)
{
$p[$v['catid']] = $v['name'];
}
$form = new Admin_Model_Form_SubTest();
$f = $form->createForm(array('parents' => $p));
$f->isValid($this->_getAllParams());
$json = $f->getMessages();
echo Zend_Json::encode($json);
}
だからこれは私が上に与えた関数を呼び出します
<script type="text/javascript">
var Path="<?php echo $this->eurl; ?>"
$(function()
{
vReg=0
$("#addtbtn").click(function()
{
if(vReg == 1)
{
return true;
}
else{
var url = 'validateform';
var data = {};
$("input").each(function()
{
data[$(this).attr('name')] = $(this).val();
});
$("select").each(function()
{
data[$(this).attr('name')] = $(this).val();
});
$("textarea").each(function()
{
data[$(this).attr('name')] = $(this).val();
});
$.post(url,data,function(resp)
{
vError=""
for(id in resp){
oResp=resp[id];
for(key in oResp){
vError +=oResp[key]+"\n"
}
}
if(vError == ''){
vReg=1
$("#createform").attr('target','_top');
$("#createform").submit();
return true;
}
else{
$("#createform").attr('target','_self');
alert(vError)
return false;
}
},'json');
}
});
});
</script>
はまた、私のコントローラで、次のような機能があり、次のコードでのAjaxを使用して検証を行います投稿を投稿し、検証を行い、エラーを返します。しかし、私はいつも
"File exceeds the defined ini size "
を取得しました。私はこのコードを間違っていました。
こんにちは。
ありがとうございます。でも、アップロードファイルを使用してフォームをクリックしても、メッセージが表示されます。また、私はupload_max_filesizeでチェックしました、イメージのサイズはupload_max_filesizeよりも小さいです。 – mymotherland
iframeを使用しなかった場合、私は自分の画像をアップロードすることができます...非常に奇妙 – mymotherland
通常のページのアップロードからのiframeへのアップロードの違いはありません。 $ _FILESをダンプすることで、サーバ上で何が受信されているかを確認したいかもしれません。 –