首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP Codeigniter中下载上传的图片

如何在PHP Codeigniter中下载上传的图片
EN

Stack Overflow用户
提问于 2018-07-11 06:43:21
回答 1查看 3.5K关注 0票数 0

我上传了一张图片,然后对图片进行了旋转操作,并在其他视图中获取了翻转的图片,现在如何下载翻转的图片,请指导我?

查看图片上传代码:

代码语言:javascript
复制
<input type='file' name="userfile" size="20">
<input type="submit" name="upload" value="Flip">

flip的控制器代码:

代码语言:javascript
复制
$data['title'] ='Flip Image';
$upload['upload_path'] = './assets/images/';
$upload['allowed_types'] = 'gif|jpg|jpeg|png';
$this->load->library('upload',$upload);
$filedata1 = $this->upload->data();
if(!$this->upload->do_upload('userfile')){
show_error($this->upload->display_errors());
}           
$this->load->library('image_lib');
$config['image_library'] = 'gd2';
$config['source_image'] = $this->upload->data('full_path');
$config['rotation_angle'] ='hor';
$this->image_lib->initialize($config);
if(!$this->image_lib->rotate()){
    show_error($this->image_lib->display_errors());
}
$filedata = $this->upload->data();
$data['img2'] = base_url().'/assets/images/'.$filedata['file_name'];
print $this->load->view('pages/result',$data,true);

下载功能:

代码语言:javascript
复制
$this->load->helper('download');
$data = 'myimag.png';
force_download($img2, $data);
redirect('pages/result');

现在我正在其他页面中获取这个图像结果,在这里我调用了控制器的下载函数(上面给出),点击下载按钮,这样它就可以开始下载文件,而不需要询问它的路径,但它显示错误:结果视图:

代码语言:javascript
复制
<img src="<?php echo $img2;?>" width="200" height="200"> 
<?php echo form_open('pages/download()'); ?>
<input type="submit" name="submit" value="Download">
</form>

下载错误:函数Pages::

()的参数太少,在第532行的D:\xampp\htdocs\ImageTools\system\core\CodeIgniter.php中传递的参数为0,而预期的

恰好为1

EN

回答 1

Stack Overflow用户

发布于 2018-07-11 08:24:45

希望这能对你有所帮助:

你可以这样做:

注意::确保这里的$img2包含图像文件的完整路径

代码语言:javascript
复制
<img src="<?php echo $img2;?>" width="200" height="200"> 
<a href="<?php echo $img2;?>" download="myimage" >Download</a>

或者简单地这样做:

代码语言:javascript
复制
<img src="<?php echo $img2;?>" width="200" height="200"> 
<a href="<?=base_url('pages/download/'.$img2);?>" >Download</a>

你的download方法应该是这样的:

代码语言:javascript
复制
function download($img2)
{
    $this->load->helper('download');
    /*make sure here $img2 contains full path of image file*/

    force_download($img2, NULL);
}

更多信息:https://www.w3schools.com/tags/att_a_download.asp

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51274893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档