Определите свою собственную строку формата разбора для использования.
string formatString = "yyyyMMddHHmmss";
string sample = "20100611221912";
DateTime dt = DateTime.ParseExact(sample,formatString,null);
Если у вас есть дата и время в миллисекундах, используйте следующий формат String
string format = "yyyyMMddHHmmssfff"
string dateTime = "20140123205803252";
DateTime.ParseExact(dateTime ,format,CultureInfo.InvariantCulture);
Спасибо
Основная идея: все, что делает ваш контроллер, - это настраивает nginx Заголовок x-Accel-Redirect . Как только ваш метод контроллера вернется (что будет очень быстро), nginx просмотрит заголовок, установленный вашим приложением Rails. Если установлено x-Accel-Redirect, то nginx обслуживает статический файл.
Ваш контроллер будет выглядеть примерно так:
def show
@attachment = Attachment.find(params[:id])
# Do anything else you need for authentication, etc.
head(:x_accel_redirect => '/files/' + @attachment.filename,
:content_type => @attachment.content_type,
:content_disposition => "attachment; filename=\"#{@attachment.filename}\"")
end
Одно это не поможет. Вам также необходимо сообщить nginx о файлах, расположенных в $ RAILS_ROOT / files. Добавьте это в конец вашей конфигурации nginx внутри блока сервера:
location /files {
root /path/to/rails_app;
internal;
}
Поместите статический файл в $ RAILS_ROOT / files, и он должен работать. Не нужны плагины или патч-обезьяна. Протестировано с Rails 2.3.2 и 2.3.14.