PHP-Entwicklungsframework Yii Framework-Tutorial (15) UI-Komponente MultiFileUpload-Beispiel

黄舟
Freigeben: 2023-03-05 07:40:01
Original
1309 Leute haben es durchsucht

CMultiFileUpload wird zum Hochladen von Dateien verwendet und unterstützt das gleichzeitige Hochladen mehrerer Dateien. Diese UI-Komponente basiert auf dem jQuery Multi File Upload-Plugin. Viele der integrierten UI-Komponenten von Yii basieren auf JQuery, daher müssen Sie ein Assets-Verzeichnis erstellen, um dynamisch generierte Javascripts usw. zu speichern.

Auf die hochgeladenen Dateiinformationen kann über $_FILES['files'] zugegriffen werden. Der Name von CMultiFileUpload lautet beispielsweise „files“ und auf die hochgeladenen Dateiinformationen kann über $_FILES ['files'] zugegriffen werden. Darüber hinaus muss das Form-Attribut, das CMultiFileUpload enthält, enctype=multipart/form-data festlegen.

In diesem Beispiel wird ein Upload-Verzeichnis zum Speichern hochgeladener Dateien erstellt. Wir importieren die hochgeladenen Dateien über die Konfigurationsdateieinstellungen in das Verzeichnis.

Ändern Sie /config/main.php und fügen Sie Projektcode hinzu

// application-level parameters that can be accessed
// using Yii::app()->params['paramName']
'params'=>require(dirname(__FILE__).'/params.php'),
Nach dem Login kopieren

Fügen Sie einige Parameter zur Anwendung hinzu. Die Datei zum Speichern der Parameter ist config/param.php

Definieren Sie die Upload-Datei. Das Verzeichnis lautet wie folgt:

// this contains the application parameters that can be
maintained via GUIreturn array(//upload directory'uploadDir' => 'upload/',);
Nach dem Login kopieren

Im Code können Sie über Yii::app()->params['uploadDir'] auf diesen Parameter zugreifen , Sie können upload auch direkt als feste Konstante verwenden, ohne die Anwendungsparameter params zu definieren.

In diesem Beispiel ist die Verwendung von Model nicht erforderlich. Wir definieren View wie folgt:

beginWidget('CActiveForm',array('method' =>'post','htmlOptions'=>array('enctype'=>'multipart/form-data'),)); 
?>
widget('CMultiFileUpload',array('name'=>'files','accept'=>'jpg|png','max'=>3,'remove'=>'Remove',//'denied'=>'', 
message that is displayed when a file type is not allowed//'duplicate'=>'', 
message that is displayed when a file appears twice'htmlOptions'=>array('size'=>25),)); 
?>endWidget(); 
?>
findFiles() as $filename): ?>
Yii::app()->baseUrl.'/'.Yii::app()->params['uploadDir'].$filename,array('rel'=>'external'));?>
Nach dem Login kopieren

Mit CMultiFileUpload können Sie einige Optionen definieren Einzelheiten finden Sie unter

Ändern des entsprechenden Controllers/der entsprechenden Aktion.

class SiteController extends CController
{
/**
* Index action is the default action in a controller.
*/
public function actionIndex()
{
if(isset($_FILES['files']))
{
// delete old files
foreach($this->findFiles() as $filename)
unlink(Yii::app()->params['uploadDir'].$filename);
//upload new files
foreach($_FILES['files']['name'] as $key=>$filename)
move_uploaded_file($_FILES['files']['tmp_name'][$key],
Yii::app()->params['uploadDir'].$filename);
}
$this->render('index');
}
/**
* @return array filename
*/
public function findFiles()
{
return array_diff(scandir(Yii::app()->params['uploadDir']),
array('.', '..'));
}
}
Nach dem Login kopieren

Die Aktionsmethode löscht zunächst die Dateien im Upload-Verzeichnis und speichert dann die hochgeladenen Dateien in diesem Verzeichnis.

PHP-Entwicklungsframework Yii Framework-Tutorial (15) UI-Komponente MultiFileUpload-Beispiel

Das Obige ist der Inhalt des PHP-Entwicklungsframeworks Yii Framework-Tutorial (15) UI-Komponente MultiFileUpload-Beispiel Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website ( www.php.cn)!


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!