2010-02-04 4 views
0

ImageMagick, похоже, не работает с иностранными символами. Я использую следующий кодimagemagick с иностранными символами

Он отлично работает, пока буква на пути или файл не имеет иностранного символа. Как преобразовать изображения в большие пальцы на моем сайте asp.net? Есть ли подключаемый модуль или другое приложение или версия, которые я могу использовать?

  Process app = new Process(); 
      app.StartInfo.FileName = @"bin\convert.exe"; 
      app.StartInfo.Arguments = string.Format(@"""{0}"" -resize ""{2}"" ""{1}""", file, newfile, param); 
      app.Start(); 
      app.WaitForExit(); 

ответ

0

Обходной путь заключается в том, чтобы изменить имя файла на что-то ascii safe, а затем переименовать/переместить его на имя/путь, который вы хотите, с полными символами Юникода.

+0

Если кто-то дает мне лучший ответ, я могу переключить принимающий ответ, но это решение достаточно справедливо. – 2010-02-08 03:49:21

1

Я бы сменил название файла. Вероятно, вы захотите сделать какое-либо преобразование имени файла, чтобы защитить себя от атак, встроенных в имя файла. Как правило, это плохая идея запустить подпроцесс с любой строкой, которую пользователь может контролировать. Если вы загружаете загруженные файлы, переместите их на какое-то новое имя перед запуском convert.exe - например, имя, созданное с помощью uuid.

+0

не полезно. Мне все равно нужно преобразовать имена китайских или корейских файлов. – 2010-02-04 02:08:09

+0

hmm. Я не вижу, как «я бы изменил имя файла ... переместите их на какое-то новое имя перед запуском convert.exe» отличается от «Обходным путем является изменение имени файла на что-то безопасное ascii». Я просто указывал, что, не считаясь с ответом на ваш вопрос, это может быть хорошей практикой для повышения безопасности. :: shrug :: Рад видеть, что вы получили рабочее решение в конце. – Matt

+0

Я думал, что вы говорите, не позволяйте пользователям выбирать имя PERIOD (по соображениям безопасности). и использовать безопасные имена ascii. Это не происходило со мной, пока я не сел и попытался подумать об обходном пути, потому что иностранные имена кажутся невозможными. Я не знал/думал, что вы предлагаете мне мой ответ. -edit- я все равно +1;) – 2010-02-05 22:55:31

Смежные вопросы