0

次のエラーが表示されます。エラーが発生するのは、私が付けようとしている添付ファイルです。 ファイル 'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\1.jpg' が見つかりませんでした。

            <div class="nav-collapse collapse">
                <p class="navbar-text pull-right">
                    Logged in as
                    <asp:Label ID="lblUsername" runat="server"></asp:Label>
                    <asp:LinkButton ID="lnkLogout" runat="server">Logout</asp:LinkButton>
                </p>
            </div>
        </div>
    </div>
</div>
    <asp:Label ID="lblMessage" runat="server" Text=""></asp:Label>
<div class="well"> 
    <div class="control-group">
        <asp:Label ID="Label3" runat="server" Text="To" CssClass="control-label"></asp:Label>
        <div class="controls">
            <asp:TextBox ID="txtTo" runat="server" CssClass="span12"></asp:TextBox>
        </div>
    </div>
    <div class="control-group">
        <asp:Label ID="Label1" runat="server" Text="CC" CssClass="control-label"></asp:Label>
        <div class="controls">
            <asp:TextBox ID="txtCC" runat="server" CssClass="span12"></asp:TextBox>
        </div>
    </div>
    <div class="control-group">
        <asp:Label ID="Label4" runat="server" Text="BCC" CssClass="control-label"></asp:Label>
        <div class="controls">
            <asp:TextBox ID="txtBCC" runat="server" CssClass="span12"></asp:TextBox>
        </div>
    </div>
    <div class="control-group">
        <asp:Label ID="Label2" runat="server" Text="Subject" CssClass="control-label"></asp:Label>
        <div class="controls">
            <asp:TextBox ID="txtSubject" runat="server" CssClass="span12"></asp:TextBox>
        </div>
    </div>

            <div class="control-group">
        <asp:Label ID="Label5" runat="server" Text="Add Attachment" CssClass="control-label"></asp:Label>
        <div class="controls">
            <asp:FileUpload ID="FileUpload1" runat="server" />
        </div>
    </div>


    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </asp:ToolkitScriptManager>
    <cc1:Editor ID="Editor1" runat="server" Height="500px" />
</div>

        <div class="text-center">
        <asp:Button ID="btnSubmit" runat="server" Text="Send" 
            CssClass="btn btn-primary" onclick="btnSubmit_Click"/>
        <input id="Reset1" type="reset" value="Reset" class="btn" />
    </div>

ここに私のコードがあります

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Final_Year_Project_Allocation_System.Admin
{
    public partial class SendMailToUsers : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        try
        {

            //send email
            MailMessage msg = new MailMessage();
            msg.From = new MailAddress("projectallocationsystem@gmail.com", "Project Allocation System");
            msg.To.Add(new MailAddress(txtTo.Text));
            if (txtCC.Text != "")
            {
                msg.CC.Add(new MailAddress(txtCC.Text));
            }

            if (txtBCC.Text != "")
            {
                msg.Bcc.Add(new MailAddress(txtBCC.Text));
            }


            if (FileUpload1.PostedFile.ContentLength > 0)
            {
                Attachment attachment = new Attachment(Path.GetFullPath(FileUpload1.PostedFile.FileName));
                msg.Attachments.Add(attachment);
            }


            msg.Subject = txtSubject.Text;
            msg.Body = Editor1.Content;
            msg.IsBodyHtml = true;

            SmtpClient setp = new SmtpClient();
            setp.Host = "smtp.gmail.com";
            setp.Port = 587;
            setp.UseDefaultCredentials = true;
            setp.Credentials = new NetworkCredential("projectallocationsystem@gmail.com", "*************");

            setp.EnableSsl = true;

            setp.Send(msg);

            lblMessage.Text = "Please Check your mail.";
            lblMessage.CssClass = "alert alert-success";
        }
        catch (Exception err)
        {
            lblMessage.Text = "Error: " + err.Message;
            lblMessage.CssClass = "alert alert-error";
        }
    }
}

エラーはアップロードファイルだと思います。しかし、それを理解することはできません

4

2 に答える 2

5

実際のファイルバイトで何もしていないというemdの答えは正しいです。ただし、ファイル システムをバイパスすることで、答えを改善できると思います。

var attachment = new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.PostedFile.FileName);
于 2013-06-06T20:05:21.653 に答える
1

Path.GetFullPath(FileUpload1.PostedFile.FileName)

-- クライアント側のファイル パスであるため、存在しない Web サーバー上の場所を指します。ファイルを取得するのではなく、ファイル パスを調べています。

代わりに、最初にファイルをサーバーに取得する必要があります。

FileUpload1.SaveAs(somepathhere);

その後、ファイルを使用できます。

于 2013-06-06T19:41:33.027 に答える