У меня есть это приложение yii, где пользователь может загрузить изображение, теперь, когда я загружаю маленькое изображение, например, 17.2 КБ, и нажимаю «Отправить», оно работает нормально. Когда я пытаюсь загрузить файл 1.3 МБ, я получаю следующую ошибку ссылка на сайт. Теперь я понимаю, что это происходит, потому что я нажимаю «отправить», он отменяет загрузку, но даже после выбора файла, а затем нажатия «отправить» после ожидания в течение 15 минут, это все равно дает мне частичную ошибку загрузки. Эта проблема возникает в каждом приложении php, которое я использую yii рамки или чистый php.
У меня есть мой post_max_size,upload_max_filesize оба установлены в 20M. Эта ошибка происходит с фреймворком yii, и даже чистое php-приложение не может загрузить такой файл. Я бегу Ubuntu 14.04. Могу ли я что-то делать с сервером Apache или я неправильно строю свой код? Я также попробовал это на сервере WAMP на моей машине с Windows, но здесь страница просто продолжает загружаться вечно, пока я не закрою ее.
Я проверил обе мои ошибки в журнале, и нет ничего, касающегося моих загрузок как на LAMP, так и на WAMP.
Мой код Yii — это форма для загрузки файла.
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'image-form',
'htmlOptions'=>array('enctype'=>'multipart/form-data'),
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model);?>
<div class="row">
<?php echo $form->labelEx($model,'imageUrl'); ?>
<?php echo $form->fileField($model,'imageUrl',array('size'=>50,'maxlength'=>50)); ?>
<?php echo $form->error($model,'imageUrl'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Upload' ,array('class'=>'button')); ?>
</div>
<?php $this->endWidget(); ?>
и я могу загрузить файл следующим образом.
public function actionCreate()
{
$model=new Image;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Image']))
{
//Getting the values via Post
$model->attributes=$_POST['Image'];
//Seeting the homeId to always be Default
$model->homeId = self::HOME_ID;
//Generating a new name for the file
$fileName = mt_rand();
//Make a FILE superglobal withthe imageUrl information
$uploadedFile=CUploadedFile::getInstance($model,'imageUrl');
//Checking if the name is alredy taken
$checkName = Image::model()->findAllByAttributes(array('imageUrl'=>$fileName));if(empty($checkName)){//If the value of the query is empty
//Assigning the value of random number to the imageUrl
$model->imageUrl = $fileName;
//Assigning the value of the the extenstion to the imageExtension
if($model->save()){
//Moveing the uploaded file
$uploadedFile->saveAs("images/upload/index/".$fileName);
Yii::app()->user->setFlash('success',"File uploaded successfully");
}
}else{//Display error
Yii::app()->user->setFlash('error',"Please try again");
}
}else{
Yii::app()->user->setFlash('error',"Fill in all the data");
}
header ("Connection: close");
$this->render('create',array(
'model'=>$model,
));
}
Did you changed the PHP.INI file like this?
upload_max_filesize = 10M
post_max_size = 8M
Remember that you need to restart Apache (if you have full access as with virtual private servers) in this (Debian) way:
/etc/init.d/apache2 restart
or be sure that Apache is restarted.
Хорошо, я понял это! Я был, потому что я использовал phpStorm для отладки своего приложения, когда я помещал его на сервер LAMP или WAMP, загрузка работала отлично. Спасибо вам, ребята, за быстрые ответы и за быстрые ответы, которые вы мне дали! ценить это!