Загрузка изображения на сайт - C#

Узнай цену своей работы

Формулировка задачи:

Пишу программу по автоматическому заполнению формы сайта. Столкнулся с проблемой загрузкой изображений через iFrame. Не могу понять как загрузить изображение на сайт? Подскажите, пожалуйста, как это делается c iFrame? Заранее, большое спасибо! сайт: http://photodoska.ru/index.php?c=1&content=add_ads
<div id="add_photo_1" class="float_left add_photo" style="position:relative; border:none; width:134px; height:136px; border: none; margin-bottom:10px; margin-right:9px; ">
            <div id="plus_photo_1" class="contaner" style="font-size:120px; display:block; color:#e6e6e6; position:absolute; top:5px; left:35px;">
            +
            </div>
            <div class="upload">
                [B]<iframe style="display: none;" id="frame_photo_1" name="frame_photo_1"></iframe>[/B]
                                <form id="upload_photo_1" method="post" enctype="multipart/form-data" action="/index.php?action=upload_photo" target="frame_photo_1">
                <input type="hidden" name="date" value="22-03-15">
                <input id="input_upload_photo_1" class="upload_photo" type="file" style="display: block !important; width: 135px !important; height: 136px !important; cursor:pointer; opacity: 0 !important; overflow: hidden !important;" name="upload">
                </form>
            </div>  
        </div>

Решение задачи: «Загрузка изображения на сайт»

textual
Листинг программы
private void tsbFill_Click(object sender, EventArgs e)
{
    while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
        Application.DoEvents();
 
 
    for (int i = 0; i < countImage; i++)
    {
        _tagImage = "";
        _fileNameImage = fileName;                 
        if (_fileNameImage != "")
        {
            _tagImage = "input_upload_photo_" + (i + 1).ToString();
            Populate().ContinueWith((_) =>
            {
                //...
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
    }
}
 
async Task PopulateInputFile(HtmlElement file)
{
    file.Focus();
 
    // delay the execution of SendKey to let the Choose File dialog show up
    var sendKeyTask = Task.Delay(1000).ContinueWith((_) =>
    {
        // this gets executed when the dialog is visible
        SendKeys.Send(_fileNameImage + "{ENTER}");
    }, TaskScheduler.FromCurrentSynchronizationContext());
 
    file.InvokeMember("Click"); // this shows up the dialog
 
    await sendKeyTask;
 
    // delay continuation to let the Choose File dialog hide
    await Task.Delay(1000);
}
 
async Task Populate()
{
    var elements = webBrowser1.Document.GetElementsByTagName("input");
    foreach (HtmlElement file in elements)
    {
        if (file.GetAttribute("id") == _tagImage)
        {
            file.Focus();
            await PopulateInputFile(file);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы