File Forum (complete mini-app)

Demo uploads land in a temporary store and are swept after 60 minutes. To keep files, handle FileUploaded — see Single File for the complete save pattern.
A complete workflow, not a mockup

The classic v4 "file-based forum" rebuilt on v5: write a topic, attach files, post - the attachments are persisted (one folder per topic under App_Data), rendered back (images inline through a safe serving handler), and deleted with their topic. Everything a real integration does, in one page you can copy from.

What you should see: attach files, click Post, and your topic appears below with image attachments displayed inline and other files as download links. The staged temp files are MOVED into the topic's folder during the same postback as the Post click - FileUploaded runs first, then the click handler.
Drag & drop files here, or paste from clipboard

Topics
No topics yet - post the first one above.
// FileUploaded runs BEFORE the button's click handler on the same postback,
// so stage the files in the event and persist them in the click:
private List<object[]> _staged = new List<object[]>();

protected void Uploader1_FileUploaded(object sender, FileUploadedEventArgs e)
{
    _staged.Add(new object[] { e.FileGuid, e.FileName, e.FileSize });
}

protected void PostTopic_Click(object sender, EventArgs e)
{
    var topicDir = CreateTopicFolder(txtTitle.Text);
    foreach (var f in _staged)
        new UploadService().MoveFile((Guid)f[0],
            Path.Combine(topicDir, Guid.NewGuid().ToString("N") + "_" + Path.GetFileName((string)f[1])));
}