Drag and Drop

parent 33d72d12
...@@ -20,6 +20,7 @@ class BidController extends \common\components\BaseController ...@@ -20,6 +20,7 @@ class BidController extends \common\components\BaseController
{ {
return [ return [
'Add' => 'Добавление заявки', 'Add' => 'Добавление заявки',
'Upload-files' => 'Загрузка файлов',
]; ];
} }
...@@ -31,21 +32,20 @@ class BidController extends \common\components\BaseController ...@@ -31,21 +32,20 @@ class BidController extends \common\components\BaseController
{ {
$model = new Bid; $model = new Bid;
$model->scenario = Yii::$app->request->post('scenario'); $model->scenario = Yii::$app->request->post('scenario');
if(Yii::$app->request->isAjax) if(Yii::$app->request->isAjax)
{ {
$model->load(Yii::$app->request->post()); $model->load(Yii::$app->request->post());
$model->file = UploadedFile::getInstance($model, 'file'); $model->file = UploadedFile::getInstance($model, 'file');
Yii::$app->response->format = Response::FORMAT_JSON; Yii::$app->response->format = Response::FORMAT_JSON;
$model->filename = $_POST['file_name'];
if($model->validate()) if($model->validate())
{ {
if($model->file) /*if($model->file)
{ {
$model->upload(); $model->upload();
$model->file = null; $model->file = null;
} }*/
$model->save(); $model->save();
$model->send(); $model->send();
...@@ -63,4 +63,19 @@ class BidController extends \common\components\BaseController ...@@ -63,4 +63,19 @@ class BidController extends \common\components\BaseController
} }
} }
public function actionUploadFiles()
{
$model = new Bid();
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name'];
$targetPath = $model->getPath();
$targetFile = $targetPath. $_FILES['file']['name'];
move_uploaded_file($tempFile,$targetFile);
return $_FILES['file']['name'];
}
}
} }
...@@ -114,7 +114,7 @@ class Bid extends \common\components\ActiveRecordModel ...@@ -114,7 +114,7 @@ class Bid extends \common\components\ActiveRecordModel
return Yii::$app->params['frontUrl'] . self::FILE_FOLDER . $this->filename; return Yii::$app->params['frontUrl'] . self::FILE_FOLDER . $this->filename;
} }
private function getPath() public function getPath()
{ {
return Yii::getAlias('@frontend/web') . self::FILE_FOLDER; return Yii::getAlias('@frontend/web') . self::FILE_FOLDER;
} }
......
<?php <?php
namespace common\modules\content\controllers; namespace common\modules\content\controllers;
use Yii;
use yii\web\BadRequestHttpException; use yii\web\BadRequestHttpException;
use common\modules\content\models\CoContent; use common\modules\content\models\CoContent;
use common\modules\school\models\Lessons;
class PageController extends \common\components\BaseController class PageController extends \common\components\BaseController
{ {
......
<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
namespace frontend\assets;
use yii\web\AssetBundle;
/**
* @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0
*/
class FileUploadBundle extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/dropzone.css',
];
public $js = [
'js/dropzone.js',
'js/upload-files.js'
];
}
...@@ -4,6 +4,10 @@ use yii\helpers\Html; ...@@ -4,6 +4,10 @@ use yii\helpers\Html;
use yii\helpers\Url; use yii\helpers\Url;
use common\modules\bids\models\Bid; use common\modules\bids\models\Bid;
use frontend\assets\FileUploadBundle;
FileUploadBundle::register($this);
?> ?>
<footer> <footer>
...@@ -23,11 +27,13 @@ use common\modules\bids\models\Bid; ...@@ -23,11 +27,13 @@ use common\modules\bids\models\Bid;
$form = ActiveForm::begin([ $form = ActiveForm::begin([
'id' => 'form_foot', 'id' => 'form_foot',
'action' => '/', 'action' => '/',
'enableClientValidation' => false, 'enableClientValidation' => false,
'options' => [ 'options' => [
'class' => 'footer_form bids-form', 'class' => 'footer_form bids-form',
'data-title' => 'Рассчитать проект', 'data-title' => 'Рассчитать проект',
'data-form' => 'Рассчитать проект', 'data-form' => 'Рассчитать проект',
'enctype' => 'multipart/form-data',
'data-tag' => Bid::TAG_TREATMENT 'data-tag' => Bid::TAG_TREATMENT
], ],
]); ?> ]); ?>
...@@ -65,21 +71,21 @@ use common\modules\bids\models\Bid; ...@@ -65,21 +71,21 @@ use common\modules\bids\models\Bid;
'class' => 'footer_form__textarea' 'class' => 'footer_form__textarea'
])->label(false); ?> ])->label(false); ?>
<div class="file-upload_block"> <div class="file-upload_block dropzone" id="block_upload">
<div class="file_upload_bt"> <div class="file_upload_bt">
<div class="file-upload"> <div class="file-upload">
<label> <label>
<?php echo $form->field($model, 'file', [ <?php/* echo $form->field($model, 'file', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>' 'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>'
])->fileInput(); ?> ])->fileInput();*/ ?>
<span>Выбрать файл</span> <span>Выбрать файл</span>
</label> </label>
</div> </div>
<input type="text" id="filename" class="filename" disabled> <!--<input type="text" id="filename" class="filename" disabled>-->
<div class="file_drop">Перетащите файл в данную область<br/> или выберите файл с компьютера</div> <div class="file_drop">Перетащите файл в данную область<br/> или выберите файл с компьютера</div>
</div> </div>
</div> </div>
<input type="hidden" name="file_name" id='file_name' value=""/>
<?php echo Html::submitButton('Рассчитать проект', ['class' => 'btn-default save-button']); ?> <?php echo Html::submitButton('Рассчитать проект', ['class' => 'btn-default save-button']); ?>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
......
...@@ -4,6 +4,10 @@ use yii\helpers\Html; ...@@ -4,6 +4,10 @@ use yii\helpers\Html;
use \common\models\Settings; use \common\models\Settings;
use \common\modules\bids\models\Bid; use \common\modules\bids\models\Bid;
use frontend\assets\FileUploadBundle;
FileUploadBundle::register($this);
?> ?>
<script type="text/javascript"> <script type="text/javascript">
...@@ -121,20 +125,21 @@ use \common\modules\bids\models\Bid; ...@@ -121,20 +125,21 @@ use \common\modules\bids\models\Bid;
'class' => 'sect_cont_form__textarea' 'class' => 'sect_cont_form__textarea'
])->label(false); ?> ])->label(false); ?>
<div class="file-upload_block_cs"> <div class="file-upload_block_cs dropzone" id="block_upload">
<div class="file_upload_bt_cs"> <div class="file_upload_bt_cs">
<div class="file-upload_cs"> <div class="file-upload_cs">
<label> <label>
<?php echo $form->field($model, 'file', [ <?php /*echo $form->field($model, 'file', [
'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>' 'template' => '<div class="row"><div class="col-sm-4">{input}</div></div>'
])->fileInput(); ?> ])->fileInput(); */?>
<span>Выбрать файл</span> <span>Выбрать файл</span>
</label> </label>
</div> </div>
<input type="text" id="filename" class="filename_cs" disabled> <!--<input type="text" id="filename" class="filename_cs" disabled>-->
<div class="file_drop_cs">Перетащите файл в данную область<br/> или выберите файл с компьютера</div> <div class="file_drop_cs">Перетащите файл в данную область<br/> или выберите файл с компьютера</div>
</div> </div>
</div> </div>
<input type="hidden" name="file_name" id='file_name' value=""/>
<?php echo Html::submitButton('Отправить', ['class' => 'btn-default save-button']); ?> <?php echo Html::submitButton('Отправить', ['class' => 'btn-default save-button']); ?>
......
This diff is collapsed.
This diff is collapsed.
$(document).ready(function() {
// Dropzone class:
// var myDropzone = new Dropzone("div#block_upload", {url: "/bids/bid/upload-files", maxFiles: 1});
Dropzone.options.blockUpload = {
url: "/bids/bid/upload-files",
maxFiles: 1,
addRemoveLinks: true,
dictRemoveFile: 'Удалить',
/*accept: function(file, done) {
$('#file_name').val(file.name);
done();
},*/
success: function(first,response) {
$('#file_name').val(response);
}
};
});
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment