ユーザーはファイルをアップロードし、医師によってレビューされます。次に、医師が自分の意見を記載したファイルをアップロードすると、ユーザーはそのファイルを読むことができます。少なくとも、できるはずです。医師がファイルをアップロードすると、ユーザーのフォルダー内に新しいディレクトリが作成され、アイテムがそのフォルダーにアップロードされます。
今バグ。詳細ページには、医師のメモを読むことができるようにダウンロードするファイル リンクがあることがわかります。しかし、ユーザーがリンクをクリックすると、リンクは 404 に戻ります。レビュー フォルダーからファイルを削除し、メイン ユーザー ディレクトリに配置すると、リンクが機能するようになりました。明らかに、リンクは正しい場所を指していませんが、私は .NET や C# を知らないので、これは非常に厄介であることが証明されています。
Details.cshtml ページの元のコードの一部を次に示します。
<table>
<tr>
<th colspan="4" class="display-label">Uploaded Documents</th>
</tr>
<tr>
<th>FileName</th>
<th>Download Files</th>
</tr>
@foreach (var file in ((IEnumerable<MyCombinedQueryModel>)ViewBag.Files))
{<tr>
<td>
@Html.ActionLink("Download", "Download", new { id = Model.PatientsId, name = file.FileName })
</td>
<td>
@file.FileName
</td>
</tr>
}<tr>
<th colspan="4" class="display-label">Download reviewer suggestion document</th></tr>
<tr>
<th>FileName</th>
<th>Download Files</th>
</tr>
@if(Model.reviewed)
{
foreach (var file in ((IEnumerable<MyCombinedQueryModel>) ViewBag.Path))
{
<tr>
<td>
@Html.ActionLink("Download", "Download", new {id = Model.PatientsId, name = file.FileName})
</td>
<td>
@file.FileName
</td>
</tr>
}
}
</table>
DoctorsController.cs の一部
//Download files string names
public ActionResult Download(int? id, string name)
{
string fileName = name;
var uploads = (from u in _db.Patients
where u.PatientsId == id
select u.FilesUrl).FirstOrDefault();
if (uploads != null)
{
string folder = Path.GetFullPath(uploads);
//HttpContext.Response.AddHeader("content-dispostion", "attachment; filename=" + fileName);
return File(new FileStream(folder +"/" + fileName, FileMode.Open), "content-dispostion", fileName);
}
throw new ArgumentException("Invalid file name of file not exist");
}
データベースには、FilesUrl と PathUrl の 2 つのフィールドがあります。PathUrl は、Review フォルダー内の Reviewed ファイルの URL を保持します。私が正しければ、どちらも FileUrl にのみリンクする同じ関数 (ダウンロード) を呼び出していると思います。詳細ページでレビュー部分のactionLinkを「DownloadR」に変更し、Download関数をコピペ(DownloadRにリネームしてPathUrlを探すように変更)してみましたが、やはりうまくいきませんでした。
ここで問題になっていること、またはそれを修正する方法についてのアドバイスはありますか? お時間をいただきありがとうございます!