silverlight项目在本地运行时,下载文件路径http://localhost:****/ClientBin/Upload/****
端口号和文件名就不显示了,上传和下载文件都是正常的,
发布到服务区上之后,路径把localhost和端口号换成服务器上对应的为什么不可以呢?
不知道路径应该是什么?求帮忙~
求路径的详细代码,
silverlight是嵌入在asp中的一个富客户端而已,所以我们之前的做法是分开,通过silverlight调用asp的上传进行操作。路径和ClientBin是一级而不是内嵌
一级?那路径是什么?
@Meng_meng: asp.net的相对路径
@古月三石: 这项目太久,看了下源码,记错了打印是调用是asp.net的js,上传直接调用服务就好了,我们这边的服务是用WCF RIA。给你上代码
客户端:
#region [上传]按钮点击事件 /// <summary> /// [上传]按钮点击事件 /// </summary> /// <param name="sender">sender</param> /// <param name="e">e</param> private async void buttonUpload_Click(object sender, RoutedEventArgs e) { // 开始进度条 base.ShowProcessBar(); FileInfo file = new FileInfo(this.textBoxFilePath.Text.Trim()); //验证文件是否存在 if (!file.Exists) { textBlockResult.Text = "文件不存在!"; return; } //读取二进制流 byte[] imBytes = this.ReadBytesByFile(file); // 上传对象 M12_FileManager mfile = new M12_FileManager(); mfile.FileManagerId = Guid.NewGuid(); mfile.FileName = file.Name; mfile.FileSize = (int)file.Length; mfile.FileType = file.Extension; mfile.FileContent = imBytes; mfile.DisplayOrder = 0; mfile.Description = string.Empty; mfile.CreatedBy = null; mfile.CreatedOn = DateTime.Now; mfile.ModifiedBy = null; mfile.ModifiedOn = null; UploadTestContext uploadTestContext = new UploadTestContext(); //调用WCF服务文件 int res = await uploadTestContext.InvokeResultAsync(uploadTestContext.UploadFile(mfile.SerializeToJson())); // 隐藏进度条 base.HideProcessBar(); if (res > 0) { textBlockResult.Text = "上传成功!文件路径:" + file.FullName; } else { textBlockResult.Text = "上传失败!"; } //恢复未上传前的控件状态 this.textBoxFilePath.Text = string.Empty; this.buttonUpload.IsEnabled = false; //绑定列表 BindGridData(); } #endregion
然后server端
/// <summary> /// 上传文件 /// </summary> /// <param name="fileStr">fileStr</param> /// <returns></returns> public int UploadFile(string fileStr) { M12_FileManager file = fileStr.DeserializeFromJson<M12_FileManager>(); // 获取到对象,取到文件的二进制,想放哪里放哪里 return BusinessFactory.UploadTestBusiness.SaveFile(file); }
@古月三石: 路径是这样的。
@古月三石: AppDomain.CurrentDomain.BaseDirectory+"ExportFiles"
就是你的路径
按理说应该是可以的,你手动访问这个地址,看看是不是405错误,很有可能是没有权限。
是404错误,找不到文件或目录