在下面的代码中
public class UploadController : ApiController
{
[HttpPost]
public HttpResponseMessage Post()
{
HttpResponseMessage result = null;
var httpRequest = HttpContext.Current.Request;
if (httpRequest.Files.Count > 0)
{
var docfiles = new List<string>();
foreach (string file in httpRequest.Files)
{
var postedFile = httpRequest.Files[file];
var filePath = HttpContext.Current.Server.MapPath("~/Files/" + postedFile.FileName);
postedFile.SaveAs(filePath);
var fileName = postedFile.FileName;
var extension = Path.GetExtension(fileName);
var nameWithoutExtension = Path.GetFileNameWithoutExtension(fileName);
var i = 1;
while (File.Exists(filePath + fileName))
{
fileName = nameWithoutExtension.Trim() + " (" + i + ")" + extension;
i++;
}
docfiles.Add(filePath + fileName);
// docfiles.Add(filePath);
}
result = Request.CreateResponse(HttpStatusCode.Created, docfiles);
}
else
{
result = Request.CreateResponse(HttpStatusCode.BadRequest);
}
return result;
}
}
我真的想让文件上传经典文件名(1).jpg如果文件名已经存在但我仍然删除了具有相同名称的旧文件,我不知道我在哪里错了我在循环中使用但它没有工作
答案 0 :(得分:0)
我尝试修复它,下面的代码现在正在工作,结果我构造错了:)
var filePath = HttpContext.Current.Server.MapPath("~/Files/" );
var postedFile = httpRequest.Files[file];
var fileName = postedFile.FileName;
var extension = Path.GetExtension(fileName);
var nameWithoutExtension = Path.GetFileNameWithoutExtension(fileName);
var i = 1;
while (File.Exists(filePath + fileName))
{
fileName = nameWithoutExtension.Trim() + " (" + i + ")" + extension;
i++;
}
postedFile.SaveAs(filePath + fileName);