String.Empty as DirectoryName объекта HttpPostedFileBase - PullRequest
0 голосов
/ 30 октября 2011

У меня есть контроллер с действием:

[HttpPost]
        public ActionResult Add(Question container, HttpPostedFileBase file)
        {

            if (file != null && file.ContentLength > 0)
            {
                var clientPath=Path.GetDirectoryName(file.FileName);

, а clientpath равен "".

Мне это нужно, потому что я не хочу сохранять файл на своем сервере, но правильноотправляю его на flickr

        string photoId = flickr.UploadPicture(clientPath, title, description, "", uploadAsPublic, false, false);

Как узнать путь к клиентскому файлу?

Я использую библиотеку FlickrNet, кстати.

Ответы [ 2 ]

1 голос
/ 30 октября 2011

Вы говорите, что хотите отправить файл напрямую на Flickr, но ваш код пытается использовать clientpath для этого ... даже если он не был пустым (что из-за безопасности!), Ваш код НЕ будет работать... потому что он попытается использовать путь, который существует только на стороне клиента вашего ASP.NET-приложения, как если бы это был путь на вашем сервере ...

То, что вы пытаетесь, AFAIK невозможно- возможно следующее:

ЕСЛИ библиотека FlickrNet предоставляет метод UploadPicture, принимающий Stream, то вы можете вызвать его с помощью file.InputStream ... ЕСЛИ она не обеспечивает такой перегрузки, которая у вас будетсохранить файл локально на вашем сервере, чтобы загрузить его на Flickr!

1 голос
/ 30 октября 2011

Чтобы отправить файл напрямую без предварительного сохранения на сервере, просто используйте перегруженный метод:

string photoId = flickr.UploadPicture(file.InputStream, title, description, "", uploadAsPublic, false, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...