예제 #1
0
        /// <summary>
        /// 上传成功后
        /// </summary>
        /// <param name="p_id">文件上传路径</param>
        /// <param name="p_file">已上传文件对象</param>
        /// <returns></returns>
        async Task IUploadUI.UploadSuccess(string p_id, FileData p_file)
        {
            // 更新时删除旧文件
            if (!string.IsNullOrEmpty(ID))
            {
                // 删除服务器端旧文件
                await AtFile.Delete(ID);

                // 删除本地旧文件
                Kit.DeleteCacheFile(GetFileName());
            }

            ID = p_id;

            // 若文件已在CachePath,重命名免去再次下载,如录音、拍照、录视频等临时文件已在CachePath
            string filePath = p_file.FilePath;

#if UWP
            // 为安全访问ID
            if (filePath.StartsWith("{"))
            {
                try
                {
                    var file = await StorageApplicationPermissions.FutureAccessList.GetFileAsync(filePath);

                    filePath = file.Path;
                }
                catch { }
            }
#endif
            if (filePath.StartsWith(Kit.CachePath))
            {
                try
                {
                    FileInfo fi = new FileInfo(filePath);
                    if (fi.Exists)
                    {
                        // 重命名免去再次下载
                        string newPath = Path.Combine(Kit.CachePath, GetFileName());
                        fi.MoveTo(newPath);
                        UpdateCachedFlag();
                    }
                }
                catch { }
            }

            // 缩略图重命名
            if (!string.IsNullOrEmpty(p_file.ThumbPath))
            {
                try
                {
                    FileInfo fi = new FileInfo(p_file.ThumbPath);
                    if (fi.Exists)
                    {
                        string newPath = Path.Combine(Kit.CachePath, GetThumbName());
                        fi.MoveTo(newPath);
                    }
                }
                catch { }
            }
        }