onunix
这一句确实没有上传文件,我看了下源码,差点误解了。
public function saveAs($file,$deleteTempFile=true) { if($this->_error==UPLOAD_ERR_OK) { if($deleteTempFile) return move_uploaded_file($this->_tempName,$file); else if(is_uploaded_file($this->_tempName)) return copy($this->_tempName, $file); else return false; } else return false;
各位好,我有点糊涂了:
$model->adImg->saveAs(Yii::app()->basePath.'/../images/shop/'.$model->adImg)
这句话难道不是保存到服务器上去了吗?Yii::app()->basePath
这是服务器的一个路径啊,这个不能保存到服务器上,那这句话是干嘛的呢?
请帮忙解答。谢谢提供这个例子,真的很好,我仔细看了下:其核心的代码:
if(!empty($_FILES['Expenses']['tmp_name']['binaryfile'])) { $file = CUploadedFile::getInstance($model,'binaryfile'); $model->fileName = $file->name; $model->fileType = $file->type; $fp = fopen($file->tempName, 'r'); $content = fread($fp, filesize($file->tempName)); fclose($fp); $model->binaryfile = $content; } $model->user = Yii::app()->user->id; if($model->save()) $this->redirect(array('view','id'=>$model->id));
但是看不到读出文件后,具体的上传过程的代码,因为有时候文件比较大,这种方式做,是否会发生经常保存不成功,返回失败后,用户再次保存,然后后调用这个函数,从上面可以看到,这会重新读这个文件(fread($fp, filesize($file->tempName));
),然后从头开始上传,因此,这种做法似乎不如把文件上传做成单独的一个步骤,这样可以方便地使用 断点续传 功能就是说Yii提供的方法(你提供的例子),使得我们无法使用断点续传,不知道我的分析有没有错误,还请斧正。
请给出这样做的理由,在数据库中,其备份、恢复、数据安全性、权限(Yii支持的访问权限,create,admin,view等)等都不用考虑了,如果不在数据库中,这些都需要考虑,不放在数据库中究竟能够带来什么好处?
这个问题难道无解吗?
因为我使用ajax,最后回调函数就是个javascript的函数,要在这个回调函数中做点事情,例如,弹出一个带链接的文本(HTML link),我首先想的是alert,但alert并不支持显示html link,并且似乎其他的,如comfirm对话框等,都不支持html link(应该是这样吧?),似乎只有CJuiDialog支持,但是显示什么链接是ajax的回调函数才知道,那怎么把这个链接传给CJuiDialog呢?
请问这类问题该如何解决呢?
大家难道没有这种需求吗?
- onunix 发布了话题请问这个地方如何国际化?