я создаю временный файл и получить свой путь с этим кодом:C# Path.GetTempFileName() с определенным путем
public ActionResult Comp(string Link)
{
var sv = Server.MapPath(Link);
int quality = 45;
string tempFile = Path.GetTempFileName();
System.IO.File.Copy(sv, tempFile, true);
using (var myBitmap = Image.FromFile(tempFile))
{
ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/jpeg");
Encoder myEncoder = Encoder.Quality;
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);
EncoderParameters myEncoderParameters = new EncoderParameters(1);
myEncoderParameters.Param[0] = myEncoderParameter;
myBitmap.Save(sv, myImageCodecInfo, myEncoderParameters);
}
System.IO.File.Delete(tempFile);
return RedirectToAction("Index");
}
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
Функция Comp использованием в компрессоре изображения. Он получает строковый путь к файлу, создавая файл tmp в C:\Users\User1\AppData\Local\Temp
, получая изображение в Link
, затем закодировал tmp-файл с установленным качеством и установил tmp-файл для получения изображения, наконец, удалив tmp-файл. Но этот код создает и удаляет временный файл в C:\Users\User1\AppData\Local\Temp
. Я хочу создать временный файл по определенному пути, потому что мой сервер не получит разрешение на этот путь. Так что этот код может быть следующим:
string tempFile = Path.GetTempFileName("/Content/temp/");
//It gets error that do not have overload method of GetTempFileName
возможно дубликат [Как сгенерировать случайное имени текстового файла в C#?] (Http://stackoverflow.com/questions/1270584/how-to-generate-a-random -named-text-file-in-c) –
Отредактированный вопрос: случайное имя файла. –
Я в замешательстве. Ваш код выше в настоящее время вызывает 'GetRandomFileName()', а не 'GetTempFileName()' – DWright