如何使用post方法下载文件?

时间:2017-08-24 09:38:31

标签: javascript php jquery

对于安全问题,我选择post方法在linux服务器上下载文件。我知道使用href = .... filename是一个下载文件的简单方法。但是黑客可以找到文件位置。

这是我的HTML代码:

 <div ><b class='filename'>1.jpg</b><span class='dwlimg' rel='1.jpg'>downloadFile</span></div>  

这是我的js代码:

$(document).on('click',".dwlimg",function(){
    var pic = $(this).attr("rel");
    $.post("action.php?act=dwlimg",{imagename:pic},function(msg){
        if(msg==1){

        }else{
            alert(msg);
        }
    });
});

这是我的action.php代码:

if($action=='dwlimg')
{   
  $file_name = $_POST['imagename'];  
  $file_dir = "files/";      
  if (! file_exists ( $file_dir . $file_name ))
  {    
    echo "file is not exist";    
    exit ();    
  }
  else 
  {    
    $file = fopen ( $file_dir . $file_name, "r" );            
    Header ( "Content-type: application/octet-stream" );    
    Header ( "Accept-Ranges: bytes" );    
    Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) );    
    Header ( "Content-Disposition: attachment; filename=" . $file_name );    

    echo fread( $file, filesize( $file_dir . $file_name ));    
    fclose ( $file );    
    exit ();    
  }    
 }

我知道$ .post函数(msg)是错误的,但我不知道如何修复它。单击downloadFile时,我的网站中没有任何内容。

那么谁可以帮助我呢?

0 个答案:

没有答案