Учет загруженных файлов при публикации информации - веб-форма asp.net c # - PullRequest
0 голосов
/ 17 декабря 2011

У меня есть веб-форма в asp.net 4.0 c # речь идет о публикации информации о книге для продажи.

В настоящее время, если пользователь загрузит изображение книги и не нажмет кнопку «отправить», файл все равно будет на моем локальном диске. Как мне управлять этими файлами / домашним хозяйством для неиспользуемого файла, который не был частью сообщения в .net?

В настоящее время он просто использует этот код aspx:

<asp:FileUpload ID="flupload1" runat="server" />
<asp:RegularExpressionValidator ID="revImage" runat="server" ControlToValidate="flupload1"
     ValidationGroup="sell" Display="Dynamic" ForeColor="Red" Text="  Invalid image type"
     ValidationExpression="^.*\.((j|J)(p|P)(e|E)?(g|G)|(g|G)(i|I)(f|F)|(p|P)(n|N)(g|G))$" />

для кода:

protected void uploadBtn1_Click(object sender, EventArgs e)
{
    if (flupload1.HasFile)
    {
        flupload1.SaveAs(Server.MapPath("productImages") + "//" + flupload1.FileName);
        try
        {
            img1.ImageUrl = "ProductImages//" + flupload1.FileName;
        }
        catch (Exception )
        {

        }
    }
}

Ответы [ 2 ]

1 голос
/ 18 декабря 2011

Способ решения подобных проблем заключается в том, чтобы все временные файлы (загружаемые файлы, файлы, запрошенные для загрузки) сохранялись во временном, хорошо известном каталоге на веб-сайте.

Затем, когда веб-приложение запускается (его ночной сброс запланировано), оно удаляет все файлы в каталоге старше 24 часов.

0 голосов
/ 18 декабря 2011

Несколько идей для вас:

  1. Когда изображение загружается впервые, кэшируйте его в ОЗУ и не записывайте на диск, пока пользователь не нажмет кнопку «Отправить».Настройте срок действия записей кэша по истечении фиксированного времени.
  2. В приложении ASP.NET есть фоновый поток, который периодически просыпается и выполняет необходимую очистку.Возможно, вам удастся упростить этот процесс, сначала сохраняя файлы во временную папку, а затем перемещая их в конечный пункт назначения, когда пользователь нажимает «Отправить».
  3. Создайте запланированное задание в Windows, которое периодически выполняется для очистки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...