Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2014, 21:15   #1
FreeZon
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 33
Злость Исправьте ошибку, о то я чет не вьезжаю

Вот у меня есть отдельный клас (Смотрите закомментированую строчку):

Код:
static void UploadAvatar()
        {
            Form1 f1 = new Form1();
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("");
            sb.AppendLine("--ae0cH2ei4Ef1gL6Ij5KM7ei4Ef1GI3");
            sb.AppendLine("Content-Disposition: form-data; name=\"Filename\"");
            sb.AppendLine("");
            sb.AppendLine("ico-shortcut.png");
            sb.AppendLine("--ae0cH2ei4Ef1gL6Ij5KM7ei4Ef1GI3");
            sb.AppendLine("Content-Disposition: form-data; name=\"sID\"");
            sb.AppendLine("");
            sb.AppendLine("vu29t1nnvfd905154dfrbgj517");
            sb.AppendLine("--ae0cH2ei4Ef1gL6Ij5KM7ei4Ef1GI3");
            sb.AppendLine("Content-Disposition: form-data; name=\"doShort\"");
            sb.AppendLine("");
            sb.AppendLine("false");
            sb.AppendLine("--ae0cH2ei4Ef1gL6Ij5KM7ei4Ef1GI3");
            sb.AppendLine("Content-Disposition: form-data; name=\"ImageUp\"; filename=\"ico-shortcut.png\"");
            sb.AppendLine("Content-Type: application/octet-stream");
            sb.AppendLine("");
            sb.AppendLine("|");
            sb.AppendLine("--ae0cH2ei4Ef1gL6Ij5KM7ei4Ef1GI3");
            sb.AppendLine("Content-Disposition: form-data; name=\"Upload\"");
            sb.AppendLine("");
            sb.AppendLine("Submit Query");
            sb.AppendLine("--ae0cH2ei4Ef1gL6Ij5KM7ei4Ef1GI3--");

            string[] data = sb.ToString().Split('|');
            byte[] array1 = Encoding.UTF8.GetBytes(data[0]);
            byte[] array3 = Encoding.UTF8.GetBytes(data[1]);            
            byte[] dataStream = File.ReadAllBytes(@"c:\qwerty.png");// как можно указать этот путь с помощью openDialogFile ??


            dataStream = array1.Concat(dataStream.Concat(array3)).ToArray();



            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://uploads.ru/upload.php");
            req.Method = "POST";
            req.ContentLength = dataStream.Length;
            req.Headers.Add(HttpRequestHeader.Cookie, "Cookie: PHPSESSID=vu29t1nnvfd905154dfrbgj517");
            req.Accept = "text/*";
            req.ContentType = "multipart/form-data; boundary=ae0cH2ei4Ef1gL6Ij5KM7ei4Ef1GI3";
            req.UserAgent = "Shockwave Flash";
            req.Host = "uploads.ru";

            Stream newStream = req.GetRequestStream();
            newStream.Write(dataStream, 0, dataStream.Length);
            newStream.Close();
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            using (StreamReader stream = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
            {
                
                string regex = @"""([^""]+.png)""";
                string nameimg = Convert.ToString(stream.ReadToEnd());
                f1.textBox6.Text = ("http://se.uploads.ru/" + Regex.Match(nameimg, regex).Groups[1].Value);
                
            }


        }
[/SPOILER]

Я пробовал так:
Создал глобальную переменную:
Код:
public string pathimg = "";
Добавил кнопку еще одну и на нее поставил код:
Код:
if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string pathimg = openFileDialog1.FileName;
           
            }
Ну и кнопка загрузить:
Код:
UploadAvatar();

Но выходит ошибка вот тут:
Код:
byte[] dataStream = File.ReadAllBytes(f1.pathimg);
пишет типа нельзя указать пустой путь...Хотя я сперва присвоил путь pathimg а потом выполнил клас UploadAvatar();

Последний раз редактировалось FreeZon; 17.07.2014 в 21:18.
FreeZon вне форума Ответить с цитированием
Старый 18.07.2014, 05:58   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Вам бы основы подучить.
А то пытаетесь строить дом, не владея даже линейкой.
Конкретно ошибка в том, что Вы _создаёте_ новую (локальную в данном случае) строку кодом
Код:
string pathimg = openFileDialog1.FileName;
и эта локальная переменная умирает при выходе из своего метода. И оригинальная переменная тут никаким боком, конечно, в ней в итоге пустая строка и ошибка говорит о пустом пути.
А нужно использовать существующую переменную
Код:
pathimg = openFileDialog1.FileName;
Вообще студия должна была сказать, что мол это unused code , поднапрягитесь и анализируйте сообщения среды (парсера, компилятора и т.д.)

Цитата:
Сообщение от FreeZon Посмотреть сообщение
есть отдельный клас
...
выполнил клас UploadAvatar();
Это не класс, а метод.

Последний раз редактировалось phomm; 18.07.2014 в 07:02.
phomm вне форума Ответить с цитированием
Старый 18.07.2014, 10:57   #3
FreeZon
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 33
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Вам бы основы подучить.
А то пытаетесь строить дом, не владея даже линейкой.
Конкретно ошибка в том, что Вы _создаёте_ новую (локальную в данном случае) строку кодом
Код:
string pathimg = openFileDialog1.FileName;
и эта локальная переменная умирает при выходе из своего метода. И оригинальная переменная тут никаким боком, конечно, в ней в итоге пустая строка и ошибка говорит о пустом пути.
А нужно использовать существующую переменную
Код:
pathimg = openFileDialog1.FileName;
Вообще студия должна была сказать, что мол это unused code , поднапрягитесь и анализируйте сообщения среды (парсера, компилятора и т.д.)


Это не класс, а метод.
Я конечно все понимаю ты профессионал и все такое. Но просто бы помог исправить. Но я уже это исправил обьявил эту переменную как статичческую и все заработало.
FreeZon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправьте ошибку Rammstalex Паскаль, Turbo Pascal, PascalABC.NET 3 11.12.2013 20:49
Подсобите исправить ошибку пожалуйста, я чет туплю не могу понять... Дмитрий132 Помощь студентам 1 11.12.2013 10:07
Исправьте ошибку soul2320 Общие вопросы C/C++ 5 23.12.2012 17:45
исправьте ошибку rockrainbow Помощь студентам 3 19.12.2012 22:13
Исправьте ошибку 15104 Общие вопросы C/C++ 2 06.10.2011 11:07