js代码
<script>
$("input#upload").change(function () {$.ajaxFileUpload({
url: 'http://localhost/sixgroup/web/?r=fcompany/upload',
secureuri: false,
data:{"id":"id"},
fileElementId:'upload',
dataType: 'json',
success: function (data,status) {
// alert(data);
// console.log(status);
if (data.result == 'Success') {
var str='*******';
//上传成功
$(":hidden[name='file']").val(data.url);
$("a[class='inline cboxElement']").html(str);
}else{
alert("上传失败");
}
},
error: function (data, status, e) {
return;
}
});
});
</script>
V层
<input type="file" id="upload" name="UploadForm[imageFile]" />
M层
namespace app\models;
use yii\base\Model;
use yii\web\UploadedFile;
class UploadForm extends Model{
/** * @var UploadedFile */
public $imageFile;
public function rules() {
return [
[['imageFile'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg,jpeg'],
];
}
public function upload() {
if ($this->validate()) {
$this->imageFile->saveAs('uploads/' . $this->imageFile->baseName . '.' . $this->imageFile->extension);
return true;
} else {
return false;
}
}
}
C层
//ajax文件上传
public function actionUpload(){
//header("content-type:text/html;charset=utf8");
$model = new UploadForm();
if (Yii::$app->request->isPost) {
$model->imageFile = UploadedFile::getInstance($model, 'imageFile');
if ($model->imageFile && $model->validate()) {
if(!file_exists('data/upload/11'))mkdir('data/upload/11');
$path='data/upload/';
if(!file_exists($path))mkdir($path);
$filename=time().'.'. $model->imageFile->extension;
$arr=array();
if($model->imageFile->saveAs($path.$filename)){
$arr=["result"=>"Success","url"=>$path.$filename];
}else{
$arr=["result"=>"Fail"];
}
}else{
$arr=["result"=>"ValidFail"];
}
}else{
$arr=["result"=>"PostFail"];
}
echo json_encode($arr);
}
轻松搞定!!