private void ThreadUploadFile(object filename) { if (filename is string fileName) { System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileName); // 开始正式上传,关于三级分类,下面只是举个例子,上传成功后去服务器端寻找文件就能明白 OperateResult result = integrationFileClient.UploadFile( fileName, // 需要上传的原文件的完整路径,上传成功还需要个条件,该文件不能被占用 fileInfo.Name, // 在服务器存储的文件名,带后缀,一般设置为原文件的文件名 "Files", // 第一级分类,指示文件存储的类别,对应在服务器端存储的路径不一致 "Personal", // 第二级分类,指示文件存储的类别,对应在服务器端存储的路径不一致 "Admin", // 第三级分类,指示文件存储的类别,对应在服务器端存储的路径不一致 "这个文件非常重要", // 这个文件的额外描述文本,可以为空("") "张三", // 文件的上传人,当然你也可以不使用 UpdateReportProgress // 文件上传时的进度报告,如果你不需要,指定为NULL就行,一般文件比较大,带宽比较小,都需要进度提示 ); // 切换到UI前台显示结果 Invoke(new Action <OperateResult>(operateResult => { if (result.IsSuccess) { MessageBox.Show("文件上传成功!"); } else { // 失败原因多半来自网络异常,还有文件不存在,分类名称填写异常 MessageBox.Show("文件上传失败:" + result.ToMessageShowString()); } }), result); } }
private void ThreadUploadFile(object filename) { if (filename is string fileName) { System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileName); // 开始正式上传,关于三级分类,下面只是举个例子,上传成功后去服务器端寻找文件就能明白 // start to upload file to server , u shold specify the catgray about the file OperateResult result = integrationFileClient.UploadFile( fileName, // 需要上传的原文件的完整路径,上传成功还需要个条件,该文件不能被占用 fileInfo.Name, // 在服务器存储的文件名,带后缀,一般设置为原文件的文件名,当然您也可以重新设置名字 textBox_upload_factory.Text, // 第一级分类,指示文件存储的类别,对应在服务器端存储的路径不一致 textBox_upload_group.Text, // 第二级分类,指示文件存储的类别,对应在服务器端存储的路径不一致 textBox_upload_id.Text, // 第三级分类,指示文件存储的类别,对应在服务器端存储的路径不一致 textBox_upload_tag.Text, // 这个文件的额外描述文本,可以为空("") textBox_upload_name.Text, // 文件的上传人,当然你也可以不使用,可以为空("") UpdateReportProgress // 文件上传时的进度报告,如果你不需要,指定为NULL就行,一般文件比较大,带宽比较小,都需要进度提示 ); // 切换到UI前台显示结果 // Show Upload Result , Because it may be failed Invoke(new Action <OperateResult>(operateResult => { button3.Enabled = true; if (result.IsSuccess) { // file upload success MessageBox.Show("文件上传成功!"); } else { // 失败原因多半来自网络异常,还有文件不存在,分类名称填写异常 // mostly failed by network exception, like offline MessageBox.Show("文件上传失败:" + result.ToMessageShowString( )); } }), result); } }