0

アップロードした画像とマキナのサムネイルを保存するために以下のコードを使用していますが、拡張子のないファイル名をデータベースに保存するため、リンクが壊れます。厳密に型指定されたデータセットとデータアダプターを停止して、ファイル拡張子の削除を停止するにはどうすればよいですか? 私の nvarchar フィールドには nvarchar(max) があるため、問題は文字列の長さではありません。

私の問題は、SQL ステートメントのパラメーターではなく、データセット列の最大サイズであることに気付いたので、修正しました。この質問を締めくくるために投票することができます。

hasTableAdapters.has_actorTableAdapter adp1 = new hasTableAdapters.has_actorTableAdapter(); 
            if (Convert.ToInt16(adp1.UsernameExists(username.Text)) == 0)
            {
                adp1.Register(username.Text, password.Text, 
                    ishairdresser.Checked, city.Text, address.Text);

                string originalfilename = Server.MapPath(" ") + "\\pictures\\" + actorimage.PostedFile.FileName;
                string originalrelative = "\\pictures\\" + actorimage.FileName;
                actorimage.SaveAs(originalfilename);
                string thumbfilename = Server.MapPath(" ") + "\\pictures\\t_" + actorimage.PostedFile.FileName;
                string thumbrelative = "\\pictures\\t_" + actorimage.FileName;
                Bitmap original = new Bitmap(originalfilename);
                Bitmap thumb=(Bitmap)original.GetThumbnailImage(100, 100, 
                    new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback),
                    IntPtr.Zero);
                thumb=(Bitmap)original.Clone(
                    new Rectangle(new Point(original.Width/2,original.Height/2), new Size(100,100)),
                    System.Drawing.Imaging.PixelFormat.DontCare);
                /*
                  bmpImage.Clone(cropArea,bmpImage.PixelFormat);
                 */
                thumb.Save(thumbfilename);
                adp1.UpdatePicture(originalrelative, thumbrelative, username.Text);
                LoginActor();
                Response.Redirect("Default.aspx");
            }

        }
4

2 に答える 2

0

問題は、クライアントで完全修飾ファイル名を返すHttpPostedFile.FileNameプロパティを使用していることのようです。したがって、このコードstring originalfilename = Server.MapPath(" ") + "\\pictures\\" + actorimage.PostedFile.FileName;は次のようなものを生成します。

c:\ inetpub \ pictures \ c:\ Users \ Username \ Pictures \ image1.jpg

どこでもFileUpload.FileNameプロパティを使用すると、おそらく必要なものが得られます。

于 2012-05-02T09:03:54.327 に答える
0

これを使用して、画像またはファイル拡張子を取得します。

string Extension = System.IO.Path.GetExtension(FileUpload.FileName);
于 2012-05-02T09:11:38.907 に答える