Подход 1
Этот подход является распространенным. Если вы вставляете некоторые данные, содержащие текст
и изображения, вы должны загрузить изображения, прежде чем нажать кнопку Сохранить (сохранение текста).
Подход 2
Я создал массив HttpPostedFile
типа:
static int i;
static HttpPostedFile[] fp;
в .aspx:
<ASP:FILEUPLOAD id="btnBrowse" runat="server" />
<br />
<ASP:BUTTON id="btnUpload" runat="server" onclick="addfile_Click"/>
<br />
<ASP:BUTTON id="btnSave" runat="server" onclick="save_Click" />
btnUpload
добавит следующее изображение в массив:
protected void addfile_Click(object sender, EventArgs e)
{
if (btnBrowse.HasFile)
{
fp[i] = btnBrowse.PostedFile;
i++;
}
}
btnSave
вставит изображения в массив:
protected void Save_Click(object sender, EventArgs e)
{
for (int j = 0; j <= i; j++)
{
string filename = Path.GetFileName(fp[j].FileName);
var image = SD.Image.FromStream(fp[j].InputStream);
image.Save(Server.MapPath("~/images/Profiles_Images/") + filename);
}
}
Работает нормально. У меня два вопроса:
- Второй подход более эффективен, чем первый?
- Если это так, как сохранить файлы в массиве без использования статического (не сохраняя значения без статического)? Потому что статика не эффективна, как вы знаете.