另存为弹出框如何调用

1.这是系统自带的图片另存为
clipboard.png
保存类型不能选择jpg,png等格式,如果这样的话用户就得手动在文件名后添加.jpg,用户体验很差
2.这是存在浏览器的设置问题,如果是设置,烦请告诉我怎么设置。
3.如果不是设置问题,我怎么用php或者js调用这个框子,修改弹出框配置,我自定义右击另存为,模拟form表单请求服务器,php header下载方式他就直接下载了,没有弹出框子,我现在想弹出这个框子,让用户可以自定义保存路径和选择保存类型,让用户体验更好!

$filename = $path->path;
$sfilename = $_SERVER['DOCUMENT_ROOT']."/downloads/".uniqid().".jpg";
$FTP = new Ftp(config('ftp.connections')['connection1']);
$status = $FTP->downloadFile($filename,$sfilename,FTP_ASCII);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($sfilename));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($sfilename));
ob_clean();
flush();
readfile($file);
exit;
我觉得右击另存为先调用windows弹出框,然后把这个路径,文件名作为参数带到服务器进行下载才对,如何调用弹出框,烦请各路大佬不吝赐教!

阅读 4.4k
2 个回答

我现在发现了自带的另存为他会找img src属性的内容,因为之前我src里面是个路由,类似于/module/capture/12345,所以浏览器另存为会变成12345,这样用户会要手动添加.jpg这样的后缀,后面我发现了如果src里面内容是/module/capture/12345.jpg,它另存为就会变成12345.jpg,所以我拼接了.jpg后面就能解决用户体验问题,还能自定义路径,发现涨姿势了

可以利用 html5 的 download 属性

<a  href="demo.jpg" download="demo.jpg">下载</a>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题