以下是fileupload的代码,
我想要的是函数返回文件路径然后文件路径,我需要在sendemail函数中使用,
public function add_attachments($ticket_id)
{
$config['upload_path'] = './uploads/attach/'.$attach_id;
$config['allowed_types'] = 'gif|jpg|png|jpeg|doc|pdf';
$config['max_size'] = '1024000000';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());
}
else
{
$data = $this->upload->data();
$file_name = $data['file_name'];
}
return $file_name;
//echo base_url().'uploads/attach/' .$file_name;
}
现在上面的函数将在$ file_name中返回, 我希望在另一个函数中使用相同的值,例如send_email()
这两个功能将由Jquery在HTML中同时执行,意味着上传附件并发送带附件的电子邮件。
以下是Jquery组件,
上传和提交的功能,
$(".dropzone").dropzone({
paramName : 'userfile',
autoProcessQueue: false,
//maxFilesize : 0.1,
url: "<?php echo base_url()?>index.php/upload/add_attachments/"+<?php echo $attach->attach_id; ?>,
init: function() {
var myDropzone = this;
// Here's the change from enyo's tutorial...
$("#ticketreply_fm").submit(function(e) {
e.preventDefault();
e.stopPropagation();
myDropzone.processQueue();
sendreply();
}
);
sendreply()函数将使用AJAX返回发送附加数据,
谢谢高级,
答案 0 :(得分:0)
我不能清楚地告诉你,但如果我认为你的问题是你的问题,那么
设置名为private $file_name;
然后在添加附件方法中使用:
public function add_attachments($ticket_id) {
$config['upload_path'] = './uploads/attach/'.$attach_id;
$config['allowed_types'] = 'gif|jpg|png|jpeg|doc|pdf';
$config['max_size'] = '1024000000';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());
}
else
{
$data = $this->upload->data();
$this->file_name = $data['file_name'];
}
return $this->file_name;
//echo base_url().'uploads/attach/' .$file_name;
}
创建一个公共方法来获取文件名,如
public function get_file_name() {
return $this->file_name;
}
因此,您现在可以使用get_file_name()
方法获取文件名的值。
我希望它有所帮助。
答案 1 :(得分:0)
来自Dropzone Docs ...有一个名为queuecomplete
的事件,可以通过invoque触发你需要的第二个功能......
类似的东西:
// use this to get the attr you need, like the name.
myDropzone.on("queuecomplete", function(file, xhr, formData) {
console.log("file", file);
console.log("xhr", xhr);
console.log("formData", formData);
});
那就像是:
$("#ticketreply_fm").submit(function(e) {
e.preventDefault();
e.stopPropagation();
myDropzone.processQueue();
myDropzone.on("queuecomplete", function(file, xhr, formData) {
// make the call here to sendmail() function with `$file.name` var...
sendreply();
});
});
我之前从未使用Dropzone
..所以我只是根据文档进行猜测。
希望它有所帮助