ASP 初学者提问,如何把存在Server上的图片的路径存到数据库里

archild 2008-10-26 05:54:28
自学ASP.NET

想要实现:
1 从本地计算机上传一个图片文件到Server上Pic目录下。
2 把这个图片的地址存到SQL Server数据库Vehicle表的vPicture里。
3 调用Vehicle表,同时可以显示图片。

目前进度:
1 可以实现从本地计算机上传一个文件到Server上Pic目录下。
3 可以调用Vehicle表,同时可以显示图片。

现在差第二步不知道怎么做。

1,3两步目前我是通过两个页面分别实现的。
但是当我想把1,3两部整合成一个页面的时候,就会提示“A page can have only one server-side Form tag. ”,搜索之后发现是因为同一个页面不能有两个run at server的form。
于是我把第一步form tag里的内容插入到第三步的页面中的<ItemTemplate> tag里,又提示“upload file does not exist in the current context”。如果放在请问应该如何解决?
还有,请问如何实现把图片地址存到SQL Server数据库Vehicle表的vPicture里。(比如目前在Edit Vehicle table的时候,选择一张本地图片,点击upload me!按钮,会实现的功能是:上传图片到Pic目录,同时把图片地址存到Vehicle表的vPicture里)

多谢指点!


...全文
201 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
archild 2008-10-28
  • 打赏
  • 举报
回复
up
继续求答案。
archild 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ZKM_ZHANG 的回复:]
去下载代码吧.
[/Quote]

请问张兄,何处有可以应用或者参考的代码下载?

多谢!
qinhl99 2008-10-27
  • 打赏
  • 举报
回复
up
ZKM_ZHANG 2008-10-27
  • 打赏
  • 举报
回复
去下载代码吧.
ojekleen 2008-10-27
  • 打赏
  • 举报
回复
1 从本地计算机上传一个图片文件到Server上Pic目录下。,
应该在上传图片的时候完成第二步,
可以规定一个访问路径,
如,你配置一个IIS指向你的PIC,或者用虚拟目录,然后在上传图片的时候同时执行数据库存入路径的操作
如:你的IIS域名为http://image.yourweb.com
你的存入数据库的图片路径为http://image.yourweb.com/1.jpg
从另一个页面访问的时候可以直接调用这个网址。
archild 2008-10-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ojekleen 的回复:]
1 从本地计算机上传一个图片文件到Server上Pic目录下。,
应该在上传图片的时候完成第二步,
可以规定一个访问路径,
如,你配置一个IIS指向你的PIC,或者用虚拟目录,然后在上传图片的时候同时执行数据库存入路径的操作
如:你的IIS域名为http://image.yourweb.com
你的存入数据库的图片路径为http://image.yourweb.com/1.jpg
从另一个页面访问的时候可以直接调用这个网址。

[/Quote]

谢谢你的建议。

我的本意是,数据库Vehicle表的每一个纪录有一张Vehicle自己的图片。这个图片的地址保存在vPicture中。

调用图片的时候是通过vPicture里存储的地址来链接到图片的。

=====================
按照您的意思,配置IIS,把图片放在某个路径下(这些目前可以实现),
访问时直接从另一页面调用图片。(中间省却了存储图片路径到Vehicle表的步骤)

但是如果照这个做法就增加了用户的工作量,上传的图片命名必须严格按照格式,以保证图片的唯一性。比如要上传Vehicle VOLVOG78690的照片,用户首先要把图片命名为picVOLVOG78690.jpg。
然后在浏览每一条记录时才可以直接定位到图片。
如果这个表有几百条纪录的时候,光重命名图片就得花费许多时间。

请问,ojekleen兄,我理解的对吗?
同时也想请教简便用户的做法。

谢谢你的回复!!!

archild 2008-10-26
  • 打赏
  • 举报
回复
续:

</asp:FormView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:AmdataConnectionString %>"
DeleteCommand="DELETE FROM [Vehicle] WHERE [Vehicle] = @original_Vehicle AND [Company] = @original_Company AND [Kms_run] = @original_Kms_run AND [Hubo_reading] = @original_Hubo_reading AND [Registration_number] = @original_Registration_number AND [vPicture] = @original_vPicture"
InsertCommand="INSERT INTO [Vehicle] ([Vehicle], [Company], [Kms_run], [Hubo_reading], [Registration_number], [vPicture]) VALUES (@Vehicle, @Company, @Kms_run, @Hubo_reading, @Registration_number, @vPicture)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT [Vehicle], [Company], [Kms_run], [Hubo_reading], [Registration_number], [vPicture] FROM [Vehicle]"
UpdateCommand="UPDATE [Vehicle] SET [Company] = @Company, [Kms_run] =@Kms_run , [Hubo_reading] = @Hubo_reading, [Registration_number] = @Registration_number, [vPicture] = @vPicture WHERE [Vehicle] = @original_Vehicle AND [Company] = @original_Company AND [Kms_run] = @original_Kms_run AND [Hubo_reading] = @original_Hubo_reading AND [Registration_number] = @original_Registration_number AND [vPicture] = @original_vPicture">

<DeleteParameters>
<asp:Parameter Name="original_Vehicle" Type="String" />
<asp:Parameter Name="original_Company" Type="Int64" />
<asp:Parameter Name="original_Kms_run" Type="Int64" />
<asp:Parameter Name="original_Hubo_reading" Type="Int64" />
<asp:Parameter Name="original_Registration_number" Type="String" />
<asp:Parameter Name="original_vPicture" Type="String" />
</DeleteParameters>

<UpdateParameters>
<asp:Parameter Name="Company" Type="Int64" />
<asp:Parameter Name="Kms_run" Type="Int64" />
<asp:Parameter Name="Hubo_reading" Type="Int64" />
<asp:Parameter Name="Registration_number" Type="String" />
<asp:Parameter Name="vPicture" Type="String" />
<asp:Parameter Name="original_Vehicle" Type="String" />
<asp:Parameter Name="original_Company" Type="Int64" />
<asp:Parameter Name="original_Kms_run" Type="Int64" />
<asp:Parameter Name="original_Hubo_reading" Type="Int64" />
<asp:Parameter Name="original_Registration_number" Type="String" />
<asp:Parameter Name="original_vPicture" Type="String" />
</UpdateParameters>

<InsertParameters>
<asp:Parameter Name="Vehicle" Type="String" />
<asp:Parameter Name="Company" Type="Int64" />
<asp:Parameter Name="Kms_run" Type="Int64" />
<asp:Parameter Name="Hubo_reading" Type="Int64" />
<asp:Parameter Name="Registration_number" Type="String" />
<asp:Parameter Name="vPicture" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
</div>
<p>
 </p>
<p>
 </p>

</form>
</body>
</html>
archild 2008-10-26
  • 打赏
  • 举报
回复
======================================
附:调用Vehicle表,同时可以显示图片。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Copy of M_Vehicle.aspx.cs" Inherits="M_Vehicle" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>

<form id="form1" enctype="multipart/form-data" runat="server">
<div>
<asp:FormView ID="FormView1" runat="server" DataKeyNames="Vehicle"
DataSourceID="SqlDataSource1"
style="z-index: 1; left: 23px; top: 112px; position: absolute; height: 54px; width: 436px"
AllowPaging="True">

<EditItemTemplate>
Vehicle:
<asp:Label ID="VehicleLabel1" runat="server" Text='<%# Eval("Vehicle") %>' />
<br />
Company:
<asp:TextBox ID="CompanyTextBox" runat="server" Text='<%# Bind("Company") %>' />
<br />
Kms_run:
<asp:TextBox ID="Kms_runTextBox" runat="server" Text='<%# Bind("Kms_run") %>' />
<br />
Hubo_reading:
<asp:TextBox ID="Hubo_readingTextBox" runat="server"
Text='<%# Bind("Hubo_reading") %>' />
<br />
Registration_number:
<asp:TextBox ID="Registration_numberTextBox" runat="server"
Text='<%# Bind("Registration_number") %>' />
<br />
vPicture:
<asp:TextBox ID="vPictureTextBox" runat="server"
Text='<%# Bind("vPicture") %>' />
<br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True"
CommandName="Update" Text="Update" />
 <asp:LinkButton ID="UpdateCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>

<InsertItemTemplate>
Vehicle:
<asp:TextBox ID="VehicleTextBox" runat="server" Text='<%# Bind("Vehicle") %>' />
<br />
Company:
<asp:TextBox ID="CompanyTextBox" runat="server" Text='<%# Bind("Company") %>' />
<br />
Kms_run:
<asp:TextBox ID="Kms_runTextBox" runat="server" Text='<%# Bind("Kms_run") %>' />
<br />
Hubo_reading:
<asp:TextBox ID="Hubo_readingTextBox" runat="server"
Text='<%# Bind("Hubo_reading") %>' />
<br />
Registration_number:
<asp:TextBox ID="Registration_numberTextBox" runat="server"
Text='<%# Bind("Registration_number") %>' />
<br />
vPicture:
<asp:TextBox ID="vPictureTextBox" runat="server"
Text='<%# Bind("vPicture") %>' />
<br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True"
CommandName="Insert" Text="Insert" />
 <asp:LinkButton ID="InsertCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</InsertItemTemplate>

<ItemTemplate>
Vehicle:
<asp:Label ID="VehicleLabel" runat="server" Text='<%# Eval("Vehicle") %>' />
<br />
Company:
<asp:Label ID="CompanyLabel" runat="server" Text='<%# Bind("Company") %>' />
<br />
Kms_run:
<asp:Label ID="Kms_runLabel" runat="server" Text='<%# Bind("Kms_run") %>' />
<br />
Hubo_reading:
<asp:Label ID="Hubo_readingLabel" runat="server"
Text='<%# Bind("Hubo_reading") %>' />
<br />
Registration_number:
<asp:Label ID="Registration_numberLabel" runat="server"
Text='<%# Bind("Registration_number") %>' />
<br />
vPicture:
<asp:Label ID="vPictureLabel" runat="server" Text='<%# Bind("vPicture") %>' />
<br />
<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False"
CommandName="Edit" Text="Edit" />
 <asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False"
CommandName="Delete" Text="Delete" />
 <asp:LinkButton ID="NewButton" runat="server" CausesValidation="False"
CommandName="New" Text="New" />

<asp:Image ID="MyImage" Visible="true" runat="server" Height="60px"
Width="80px" ImageUrl='<%# Bind("vPicture") %>'/>
</ItemTemplate>




archild 2008-10-26
  • 打赏
  • 举报
回复
===============
附:1 从本地计算机上传一个图片文件到Server上Pic目录下。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="Form2" enctype="multipart/form-data" runat="server">
Select File To Upload: <input id="UploadFile" type="file" runat="server"/>
<asp:button ID="Button1" Text="Upload Me!" OnClick="UploadBtn_Click" runat="server"/>
<asp:image id="MyImage" Visible="false" runat="server" Height="60px"
Width="80px"/>

<script language="C#" runat="server">
public void UploadBtn_Click(object Sender, EventArgs E)
{

UploadFile.PostedFile.SaveAs(Server.MapPath("Pic/" + System.IO.Path.GetFileName(UploadFile.PostedFile.FileName)));

MyImage.ImageUrl = "Pic/" + System.IO.Path.GetFileName(UploadFile.PostedFile.FileName);
MyImage.Visible = true;

}
</script>
</form>
</body>
</html>


62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧