精华内容
下载资源
问答
  • 微信小程序base64的图片保存到手机相册

    万次阅读 多人点赞 2019-01-02 17:16:21
    在这之前试过base64的图片转移保存到画布然后保存到手机,但是真机调试的时候不支持这种方式,希望各位不要再去汤坑 下面是可行的方法: scene 是base64文件,打印结果如下: 不说废话,直接上代码:(结尾有...

    微信小程序开发交流qq群   173683895

       承接微信小程序开发。扫码加微信。

    在这之前试过把base64的图片转移保存到画布然后保存到手机,但是真机调试的时候不支持这种方式,希望各位不要再去汤坑

    下面是可行的方法:

    scene 是base64文件,打印结果如下:

    不说废话,直接上代码:(结尾有代码说明)

      
        var aa = wx.getFileSystemManager();
        console.log('that.data.scene:', that.data.scene)
        aa.writeFile({
          filePath:wx.env.USER_DATA_PATH+'/test.png',
          data: that.data.scene.slice(22),
          encoding:'base64',
          success: res => {
            wx.saveImageToPhotosAlbum({
              filePath: wx.env.USER_DATA_PATH + '/test.png',
              success: function (res) {
                wx.showToast({
                  title: '保存成功',
                })
              },
              fail: function (err) {
                console.log(err)
              }
            })
            console.log(res)
          }, fail: err => {
            console.log(err)
          }
        })

    代码解析:

    wx.getFileSystemManager()  是获取文件管理器对象;

    aa.writeFile  是写文件,详细参数可 点击查看 官方文档说明。

    wx.env.USER_DATA_PATH+'/test.png'  这里是创建一个临时文件的文件名。

    that.data.scene.slice(22)   这里是把 data:image/png;base64,  这一段去除,需要注意的是去除这一段之后 base64 编码之间放到image组件的src里面是不能显示图片的。

    wx.saveImageToPhotosAlbum  是保存图片到相册

     

    本文的base64文件的来源是小程序二维码,微信小程序生成小程序二维码流程博客地址点击跳转

    writeFile  文档简要说明:

    展开全文
  • 介绍篇介绍Android获取本机各种类型文件的方法,已经封装成工具类,末尾有源码下载地址。提示获取音乐、视频、图片、文档等文件是需要有读取SD卡的权限的,如果是6.0以下的系统,则直接在清单文件中声明SD卡读取...

    介绍

    本篇介绍Android获取本机各种类型文件的方法,已经封装成工具类,末尾有源码下载地址。

    提示

    获取音乐、视频、图片、文档等文件是需要有读取SD卡的权限的,如果是6.0以下的系统,则直接在清单文件中声明SD卡读取权限即可;如果是6.0或以上,则需要动态申请权限。

    FileManager的使用

    FileManager是封装好的用于获取本机各类文件的工具类,使用方式如:FileManager.getInstance(Context context).getMusics(),使用的是单例模式创建:

    private static FileManager mInstance;
    private static Context mContext;
    private static ContentResolver mContentResolver;
    private static Object mLock = new Object();
    
    public static FileManager getInstance(Context context){
         if (mInstance == null){
             synchronized (mLock){
                 if (mInstance == null){
                     mInstance = new FileManager();
                     mContext = context;
                     mContentResolver = context.getContentResolver();
                 }
             }
         }
        return mInstance;
    }
    

    获取音乐列表

    /**
     * 获取本机音乐列表
     * @return
     */
    public List<Music> getMusics() {
        ArrayList<Music> musics = new ArrayList<>();
        Cursor c = null;
        try {
            c = mContentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,
                    MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
    
            while (c.moveToNext()) {
                String path = c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));// 路径
    
                if (FileUtils.isExists(path)) {
                    continue;
                }
    
                String name = c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME)); // 歌曲名
                String album = c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM)); // 专辑
                String artist = c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST)); // 作者
                long size = c.getLong(c.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));// 大小
                int duration = c.getInt(c.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));// 时长
                int time = c.getInt(c.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));// 歌曲的id
                // int albumId = c.getInt(c.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
    
                Music music = new Music(name, path, album, artist, size, duration);
                musics.add(music);
            }
    
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (c != null) {
                c.close();
            }
        }
        return musics;
    }
    

    FileUtils中判断文件是否存在的方法isExists(String path),代码为:

    /**
     * 判断文件是否存在
     * @param path 文件的路径
     * @return
     */
    public static boolean isExists(String path) {
        File file = new File(path);
        return file.exists();
    }
    

    音乐的bean类Music代码为:

    public class Music implements Comparable<Music> {
    	/**歌曲名*/
    	private String name;
    	/**路径*/
    	private String path;
    	/**所属专辑*/
    	private String album;
    	/**艺术家(作者)*/
    	private String artist;
    	/**文件大小*/
    	private long size;
    	/**时长*/
    	private int duration;
        /**歌曲名的拼音,用于字母排序*/
    	private String pinyin;
    
    	public Music(String name, String path, String album, String artist, long size, int duration) {
    		this.name = name;
    		this.path = path;
    		this.album = album;
    		this.artist = artist;
    		this.size = size;
    		this.duration = duration;
    		pinyin = PinyinUtils.getPinyin(name);
    	}
    
        ... //此处省略setter和getter方法
    }
    

    PinyinUtils根据名字获取拼音,主要是用于音乐列表A-Z的排序,需要依赖pinyin4j.jar,获取拼音的方法getPinyin(String name)代码为:

    public static String getPinyin(String str) {
    	// 设置拼音结果的格式
    	HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
    	format.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 设置为大写形式
    	format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不用加入声调
    
    	StringBuilder sb = new StringBuilder();
    
    	char[] charArray = str.toCharArray();
    
    	for (int i = 0; i < charArray.length; i++) {
    		char c = charArray[i];
    
    		if (Character.isWhitespace(c)) {// 如果是空格则跳过
    			continue;
    		}
    
    		if (isHanZi(c)) {// 如果是汉字
    			String s = "";
    			try {
    				// toHanyuPinyinStringArray 返回一个字符串数组是因为该汉字可能是多音字,此处只取第一个结果
    				s = PinyinHelper.toHanyuPinyinStringArray(c, format)[0];
    				sb.append(s);
    			} catch (BadHanyuPinyinOutputFormatCombination e) {
    				e.printStackTrace();
    				sb.append(s);
    			}
    
    		} else {
    			// 不是汉字
    			if (i == 0) {
    				if (isEnglish(c)) {// 第一个属于字母,则返回该字母
    					return String.valueOf(c).toUpperCase(Locale.ENGLISH);
    				}
    				return "#"; // 不是的话返回#号
    			}
    		}
    	}
    	return sb.toString();
    }
    

    获取视频列表

    /**
     * 获取本机视频列表
     * @return
     */
    public List<Video> getVideos() {
    
        List<Video> videos = new ArrayList<Video>();
    
        Cursor c = null;
        try {
            // String[] mediaColumns = { "_id", "_data", "_display_name",
            // "_size", "date_modified", "duration", "resolution" };
            c = mContentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Video.Media.DEFAULT_SORT_ORDER);
            while (c.moveToNext()) {
                String path = c.getString(c.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));// 路径
                if (!FileUtils.isExists(path)) {
                    continue;
                }
    
                int id = c.getInt(c.getColumnIndexOrThrow(MediaStore.Video.Media._ID));// 视频的id
                String name = c.getString(c.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME)); // 视频名称
                String resolution = c.getString(c.getColumnIndexOrThrow(MediaStore.Video.Media.RESOLUTION)); //分辨率
                long size = c.getLong(c.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE));// 大小
                long duration = c.getLong(c.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION));// 时长
                long date = c.getLong(c.getColumnIndexOrThrow(MediaStore.Video.Media.DATE_MODIFIED));//修改时间
    
                Video video = new Video(id, path, name, resolution, size, date, duration);
                videos.add(video);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (c != null) {
                c.close();
            }
        }
        return videos;
    }
    

    其中,视频的bean类Video代码为:

    public class Video {
        private int id = 0;
        private String path = null;
        private String name = null;
        private String resolution = null;// 分辨率
        private long size = 0;
        private long date = 0;
        private long duration = 0;
    
        public Video(int id, String path, String name, String resolution, long size, long date, long duration) {
            this.id = id;
            this.path = path;
            this.name = name;
            this.resolution = resolution;
            this.size = size;
            this.date = date;
            this.duration = duration;
        }
    
    	... //此处省略setter和getter方法
    }
    

    通过本地视频id获取视频缩略图

    // 获取视频缩略图
    public Bitmap getVideoThumbnail(int id) {
        Bitmap bitmap = null;
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inDither = false;
        options.inPreferredConfig = Bitmap.Config.ARGB_8888;
        bitmap = MediaStore.Video.Thumbnails.getThumbnail(mContentResolver, id, MediaStore.Images.Thumbnails.MICRO_KIND, options);
        return bitmap;
    }
    

    上面获取视频列表的方法中,Video对象中有一个属性是id,通过传入这个id可以获取到视频缩略图的Bitmap对象。

    获取本机所有图片文件夹

    /**
     * 得到图片文件夹集合
     */
    public List<ImgFolderBean> getImageFolders() {
        List<ImgFolderBean> folders = new ArrayList<ImgFolderBean>();
        // 扫描图片
        Cursor c = null;
        try {
            c = mContentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null,
                    MediaStore.Images.Media.MIME_TYPE + "= ? or " + MediaStore.Images.Media.MIME_TYPE + "= ?",
                    new String[]{"image/jpeg", "image/png"}, MediaStore.Images.Media.DATE_MODIFIED);
            List<String> mDirs = new ArrayList<String>();//用于保存已经添加过的文件夹目录
            while (c.moveToNext()) {
                String path = c.getString(c.getColumnIndex(MediaStore.Images.Media.DATA));// 路径
                File parentFile = new File(path).getParentFile();
                if (parentFile == null)
                    continue;
    
                String dir = parentFile.getAbsolutePath();
                if (mDirs.contains(dir))//如果已经添加过
                    continue;
    
                mDirs.add(dir);//添加到保存目录的集合中
                ImgFolderBean folderBean = new ImgFolderBean();
                folderBean.setDir(dir);
                folderBean.setFistImgPath(path);
                if (parentFile.list() == null)
                    continue;
                int count = parentFile.list(new FilenameFilter() {
                    @Override
                    public boolean accept(File dir, String filename) {
                        if (filename.endsWith(".jpeg") || filename.endsWith(".jpg") || filename.endsWith(".png")) {
                            return true;
                        }
                        return false;
                    }
                }).length;
    
                folderBean.setCount(count);
                folders.add(folderBean);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (c != null) {
                c.close();
            }
        }
    
        return folders;
    }
    

    其中,图片文件夹的bean类ImgFolderBean代码为:

    public class ImgFolderBean {
        /**当前文件夹的路径*/
        private String dir;
        /**第一张图片的路径,用于做文件夹的封面图片*/
        private String fistImgPath;
        /**文件夹名*/
        private String name;
        /**文件夹中图片的数量*/
        private int count;
    
        public ImgFolderBean(String dir, String fistImgPath, String name, int count) {
            this.dir = dir;
            this.fistImgPath = fistImgPath;
            this.name = name;
            this.count = count;
        }
    
    	... //此处省略setter和getter方法
    }
    

    获取图片文件夹下的图片路径的集合

    /**
     * 通过图片文件夹的路径获取该目录下的图片
     */
    public List<String> getImgListByDir(String dir) {
        ArrayList<String> imgPaths = new ArrayList<>();
        File directory = new File(dir);
        if (directory == null || !directory.exists()) {
            return imgPaths;
        }
        File[] files = directory.listFiles();
        for (File file : files) {
            String path = file.getAbsolutePath();
            if (FileUtils.isPicFile(path)) {
                imgPaths.add(path);
            }
        }
        return imgPaths;
    }
    

    获取本机已安装应用列表

    /**
     * 获取已安装apk的列表
     */
    public List<AppInfo> getAppInfos() {
    
        ArrayList<AppInfo> appInfos = new ArrayList<AppInfo>();
        //获取到包的管理者
        PackageManager packageManager = mContext.getPackageManager();
        //获得所有的安装包
        List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
    
        //遍历每个安装包,获取对应的信息
        for (PackageInfo packageInfo : installedPackages) {
    
            AppInfo appInfo = new AppInfo();
    
            appInfo.setApplicationInfo(packageInfo.applicationInfo);
            appInfo.setVersionCode(packageInfo.versionCode);
    
            //得到icon
            Drawable drawable = packageInfo.applicationInfo.loadIcon(packageManager);
            appInfo.setIcon(drawable);
    
            //得到程序的名字
            String apkName = packageInfo.applicationInfo.loadLabel(packageManager).toString();
            appInfo.setApkName(apkName);
    
            //得到程序的包名
            String packageName = packageInfo.packageName;
            appInfo.setApkPackageName(packageName);
    
            //得到程序的资源文件夹
            String sourceDir = packageInfo.applicationInfo.sourceDir;
            File file = new File(sourceDir);
            //得到apk的大小
            long size = file.length();
            appInfo.setApkSize(size);
    
            System.out.println("---------------------------");
            System.out.println("程序的名字:" + apkName);
            System.out.println("程序的包名:" + packageName);
            System.out.println("程序的大小:" + size);
    
    
            //获取到安装应用程序的标记
            int flags = packageInfo.applicationInfo.flags;
    
            if ((flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
                //表示系统app
                appInfo.setIsUserApp(false);
            } else {
                //表示用户app
                appInfo.setIsUserApp(true);
            }
    
            if ((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
                //表示在sd卡
                appInfo.setIsRom(false);
            } else {
                //表示内存
                appInfo.setIsRom(true);
            }
    
    
            appInfos.add(appInfo);
        }
        return appInfos;
    }
    

    其中,安装包信息的bean类AppInfo代码为:

    public class AppInfo {
        private ApplicationInfo applicationInfo;
        private int versionCode = 0;
        /**
         * 图片的icon
         */
        private Drawable icon;
    
        /**
         * 程序的名字
         */
        private String apkName;
    
        /**
         * 程序大小
         */
        private long apkSize;
    
        /**
         * 表示到底是用户app还是系统app
         * 如果表示为true 就是用户app
         * 如果是false表示系统app
         */
        private boolean isUserApp;
    
        /**
         * 放置的位置
         */
        private boolean isRom;
    
        /**
         * 包名
         */
        private String apkPackageName;
    
    	... //此处省略setter和getter方法
    }
    

    获取文档、压缩包、apk安装包等

    /**
     * 通过文件类型得到相应文件的集合
     **/
    public List<FileBean> getFilesByType(int fileType) {
        List<FileBean> files = new ArrayList<FileBean>();
        // 扫描files文件库
        Cursor c = null;
        try {
            c = mContentResolver.query(MediaStore.Files.getContentUri("external"), new String[]{"_id", "_data", "_size"}, null, null, null);
            int dataindex = c.getColumnIndex(MediaStore.Files.FileColumns.DATA);
            int sizeindex = c.getColumnIndex(MediaStore.Files.FileColumns.SIZE);
    
            while (c.moveToNext()) {
                String path = c.getString(dataindex);
    
                if (FileUtils.getFileType(path) == fileType) {
                    if (!FileUtils.isExists(path)) {
                        continue;
                    }
                    long size = c.getLong(sizeindex);
                    FileBean fileBean = new FileBean(path, FileUtils.getFileIconByPath(path));
                    files.add(fileBean);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (c != null) {
                c.close();
            }
        }
        return files;
    }
    

    传入的fileType文件类型是在FileUtils定义的文件类型声明:

    /**文档类型*/
    public static final int TYPE_DOC = 0;
    /**apk类型*/
    public static final int TYPE_APK = 1;
    /**压缩包类型*/
    public static final int TYPE_ZIP = 2;
    

    其中,FileUtils根据文件路径获取文件类型的方法getFileType(String path)为:

     public static int getFileType(String path) {
        path = path.toLowerCase();
        if (path.endsWith(".doc") || path.endsWith(".docx") || path.endsWith(".xls") || path.endsWith(".xlsx")
                || path.endsWith(".ppt") || path.endsWith(".pptx")) {
            return TYPE_DOC;
        }else if (path.endsWith(".apk")) {
            return TYPE_APK;
        }else if (path.endsWith(".zip") || path.endsWith(".rar") || path.endsWith(".tar") || path.endsWith(".gz")) {
            return TYPE_ZIP;
        }else{
            return -1;
        }
    }
    

    文件的bean类FileBean代码为:

    public class FileBean {
       /** 文件的路径*/
        public String path;
        /**文件图片资源的id,drawable或mipmap文件中已经存放doc、xml、xls等文件的图片*/
        public int iconId;
    	
        public FileBean(String path, int iconId) {
            this.path = path;
            this.iconId = iconId;
        }
    }
    

    FileUtils根据文件类型获取图片资源id的方法,getFileIconByPath(path)代码为:

    /**通过文件名获取文件图标*/
    public static int getFileIconByPath(String path){
        path = path.toLowerCase();
        int iconId = R.mipmap.unknow_file_icon;
        if (path.endsWith(".txt")){
            iconId = R.mipmap.type_txt;
        }else if(path.endsWith(".doc") || path.endsWith(".docx")){
            iconId = R.mipmap.type_doc;
        }else if(path.endsWith(".xls") || path.endsWith(".xlsx")){
            iconId = R.mipmap.type_xls;
        }else if(path.endsWith(".ppt") || path.endsWith(".pptx")){
            iconId = R.mipmap.type_ppt;
        }else if(path.endsWith(".xml")){
            iconId = R.mipmap.type_xml;
        }else if(path.endsWith(".htm") || path.endsWith(".html")){
            iconId = R.mipmap.type_html;
        }
        return iconId;
    }
    

    上述各种文件类型的图片放置在mipmap中,用于展示文件列表时展示。

    FileManager以及其他类的源码,可以点击下面的网址跳转查看和下载:

    点击查看源码(phone目录下的文件)

    展开全文
  • uniapp 保存文件手机

    千次阅读 2020-04-29 23:15:21
    conserve:function(){ var that = this ... uni.downloadFile({//保存成临时文件 url: that.img,// success: (res) =>{ console.log(JSON.stringify(res)...
    conserve:function(){
    						var that = this
    						uni.downloadFile({//保存成临时文件
    								url: that.img,//要保存的文件路径
    								success: (res) =>{
    									if (res.statusCode === 200){//保存成功返回200
    										uni.saveImageToPhotosAlbum({
    											filePath: res.tempFilePath,//返回的临时路径
    											success: function(res2) {
    												console.log(JSON.stringify(res2))
    												uni.showToast({
    													title: "保存成功",
    													icon: "none"
    												});
    											},
    											fail: function() {
    												uni.showToast({
    													title: "保存失败,请稍后重试",
    													icon: "none"
    												});
    											}
    										});
    										
    									}
    								}
    							})
    					}
    
    展开全文
  • html5 plus 图片下载保存到手机相册

    万次阅读 2018-06-22 21:50:40
    html5plus 接口文档:http://www.html5plus.org/doc/zh_cn/webview.html vue 集成html5plus方法:https://blog.csdn.net/weixin_38641550/article/details/85235297 vue集成plus demo :...

    html5plus 接口文档:http://www.html5plus.org/doc/zh_cn/webview.html

    vue 集成html5plus方法:https://blog.csdn.net/weixin_38641550/article/details/85235297

    vue集成plus demo : https://github.com/Shaxin742/vue-webapp-demo 

    这个是基于html5plus的  

    $(".download").click(function () {
          var self = plus.webview.currentWebview();
          console.log(self.fileUrl)
          plus.nativeUI.showWaiting('加载中...')
          var dtask = plus.downloader.createDownload(self.fileUrl, {}, function (d, status) {
            // 下载完成
            if (status == 200) {
              //                      mui.toast("下载成功,文件保存在"+d.filename)
              plus.gallery.save(d.filename, function () {//保存到相册方法
                plus.nativeUI.closeWaiting()
                mui.toast('已保存到手机相册');
              }, function () {
                plus.nativeUI.closeWaiting()
                mui.toast('保存失败,请重试!');
              });
            } else {
              mui.toast("下载失败")
            }
          });
          dtask.start();
        })

     

    展开全文
  • js保存图片手机相册(ios与android通用)

    万次阅读 热门讨论 2018-04-03 12:09:24
    1、将图片上传后台,拷贝链接。2、Downloader模块管理网络文件下载任务,用于从服务器下载各种文件,并支持跨域访问操作。通过plus.downloader获取下载管理对象。Downloader下载使用HTTP的GET/POST方式请求下载...
  • Unity截屏保存到安卓手机相册

    千次阅读 热门讨论 2018-10-01 15:24:44
    1、首先本人同样用了和大家一样的方法在百度查了很久的资料,之后又看API,官方帮助文档,之后终于解决了这个问题。在网上查的都是代码几乎都是一个模子刻出来的,现在贴上我自己查了资料后改的代码。 2、直接上...
  • 博文目录如下:1、新建文档2、保存文档---------------------------------------------------------------------------------新建文档 在使用Word时,先要创建一个新文档,才能输入和编辑文档内容。在Word2010 ,...
  • 前言:本来用uniapp开发h5页面,想点击图片保存到本地,但是,uniapp并不支持这个方法,所以下面这个是通过百度找各种资源然后弄出来的方法 直接上代码,有注释: <image mode="aspectFit" :src="xxxxxx"><...
  • 手机微信中的文档存放位置

    千次阅读 2020-12-03 11:25:19
    1.手机微信中的文档,会放在手机的文件管理里面 2.打开文件管理,我的文档是存在手机内部存储里面 3.打开手机内部存储,找到Android,并打开。 4.找到data并打开 5.找到com.tencent.mm,并打开 6.找到...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    -d: 不记录写/var/log/wtmp文件里(-n这个参数包含了-d)。 -i: 在重开机之前先所有与网络相关的装置停止。 install 1.作用 install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。 ...
  • 2021年前端面试题及答案

    万次阅读 多人点赞 2020-02-11 19:29:34
    主要原理:通过SQL命令插入Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令 防御手段: 使用预编译,绑定变量(推荐)。 检查数据类型。 过滤特殊字符和语句。 页面不错误...
  • uni-app:使用uni.downloadFile下载文件并保存到手机

    万次阅读 热门讨论 2019-12-09 10:52:08
    在uni-app中下载文件需要先获取文件的临时路径,然后再进行保存,才算下载成功: uni.downloadFile({ url, //文件链接 header, success:({statusCode,tempFIlePath})=>{ //statusCode状态为200表示请求...
  • 记录当完成word工作后误点了不保存选项的恢复办法 错误如图 利用word中的管理文档工具就可以完美恢复。点击要恢复文档的文件选项卡 ...在版本中存在当我没保存就关闭的文档,单机打开即可恢复。 ...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    版本管理 针对基础测试基础版本要进行充分的测试 验收前的最后一个版本一定要进行完全重复测试 测试方法 黑盒方法 功能问题 无法保证所有的代码逻辑都被执行 用白盒测试思想补充黑盒测试 静态测试方法 文档评审 ...
  • Freemarker官网,英文,可以用谷歌浏览器的自动翻译,英文水平高的忽略这句。。 简单来说:FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具...这里使用freemarker生成Word文档,非常方便。 惯例,先看看
  • 以前做图片保存都是自己在手机根目录下建一个自己的文件夹,保存到自己的文件夹下,今天在写一个小功能时发现当将图片保存到相册默认的路径下时,打开手机相册并不显示保存成功的图片,于是经过各种查阅和百度发现...
  • 今天,他来了(weboffice在线编辑文档)。 上次写了一个在线预览的博,当然,效果并不是太理想,但是紧急解决了当时的问题。 后来,小编重新查找资料,求助大牛,终于使用新的方式替换了之前的low方法。 有两种比较...
  • 文件内容主要来自 乾勤文档,使用本人自制miniwiggler也可以在实际产品上仿真 1.1导入 Demo 工程 打开file 选项,使用Import 功能导入,或者在左边HighTec Project Explorer窗口右键单击使用Import 功能。操作步骤...
  • 1.手机配置好代理,若是抓取外网,需要下载证书,打开...网页安装证书参考:https://www.cnblogs.com/ceshijiagoushi/p/6812493.htm2.打开app,Charles抓取你想要的接口,之后复制该url,tools-&gt;miroor ...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java生成密钥、保存密钥的实例源码,通过源码可以了解Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥文件privateKey.dat、如何用Java对象序列化保存私钥...
  • 问题如题,在Android中如何将 一个内容 保存成word文档
  • MFC多文档中opencv处理图像打开、保存

    万次阅读 热门讨论 2012-03-02 21:19:04
    // TODO: 在此处为本机数据添加绘制代码 if(pDoc->pImg) { if(pDoc->m_Display==0) { imageClone(pDoc->pImg,&saveImg); m_dibFlag=imageClone(saveImg,&workImg); m_ImageType=imageType(workImg)...
  • 在iOS开发中,有如下方式创建文件(夹)...从服务端获取了word,excel,pdf等文档的二进制流(注意:二进制流中不仅仅含有文档中的内容,还含有文档本身),转化为字符串为:0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/...
  • app中下载的文件怎么存储手机中,目前我从app中发送请求后台并能下载文件,但是不知道怎么存储;谢谢各位大神啦
  • 刚开始保存图片本地更新相册后时间显示1970年月1日,网上看了好多方案都不用详细代码:/** * 将URL转化成bitmap形式 * * @param url * @return bitmap type */ public final static Bitmap returnBitMap...
  • 没事时对金山文档和WPS做了个团队协作的测试,以便日后需要。 1.新建文档 2.邀请团队成员一起协作 3.协作准备 确定金山文档的账号和WPS账号是一个,不是的话也没有关系,QQ或微信登陆都是可以关联的(根据系统提示...
  • 微信小程序如何保存文件本地,并能打开看到?

    万次阅读 多人点赞 2020-07-02 15:25:04
    最近看到微信小程序的保存/下载文件API,不禁一乐:官方在文档中说的有点简单啊...正巧遇到了一些使用问题,在这里慢慢给大家分享出来:
  • 挂adb,使用logcatlog跑文件中,并筛选出来 以下是挂adb touch .base_profile open .base_profile export ANDROID_HOME=sdk路径 export PATH=PATH:PATH:{PATH}:{ANDROID_HOME}/tools export PATH=PATH:...
  • 海康威视摄像头实时预览视频流保存到文件中 目前在开发海康威视sdk ,IPC设备,视频回调用的是官方提供的Demo中的(fRealDataCallBack ) 在最下面代码可以设置Thread.sleep()设置拍摄时长, package ClientDemo; import...
  • 微信小程序开发之数据保存

    千次阅读 2019-06-24 00:02:00
    本地存储文档保存 云开发平台数据库存储 1、本地缓存 说明: 本地缓存的操作有4个API:分别提供同步保存数据wx.setStorageSync()、同步获取数据wx.getStorageSync()、异步保存数据wx.setStorage()、异步保存数据wx...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 293,388
精华内容 117,355
关键字:

怎么把文档保存到本机