0

次のC#コードがあります(サーバーへのファイルのアップロードに関するものです)

for (int i = 0; i < Request.Files.Count-1; i++)
                {
                    if (Request.ContentLength != 0)
                    {
                        int Size = Request.Files[i].ContentLength / 1024;
                        if (Size <= 512)
                        {
                            string LocalFile = Request.Files[i].FileName;
                            int dot = LocalFile.LastIndexOf('.');
                            string FileType = LocalFile.Substring(dot + 1);
                            if (FileType == "gif" || FileType == "jpg" || FileType == "png" || FileType == "GIF" || FileType == "JPG" || FileType == "PNG")
                            {
                                int LastIndex = LocalFile.LastIndexOf(@"\") + 1;
                                string File = LocalFile.Substring(LastIndex, LocalFile.Length - LastIndex);
                                string Path = Server.MapPath(" ../images/tracks") + "..\\" + File;
                                Request.Files[i].SaveAs(Path);
                                if (i != Request.Files.Count - 1)
                                    ImageList += string.Format("images/tracks/{0}|", File);
                                else { ImageList += string.Format("images/tracks/{0}", File); }
                            }
                        }
                        else
                        {
                            Response.Write("The file is too big !");
                        }
                    }
                    else
                    {
                        Response.Write("Unknown Error !");
                    }
                }

問題は、複数のファイル アップロード フィールドがあることです。

ファイル [i] の後にファイルがあるかどうかをチェックする条件を作成したい (ファイル [i+1] が空の場合はチェックする) はいの場合、プログラムは次のコードを実行します。ImageList += string.Format("images/tracks/{0}", File);

そうしないと:ImageList += string.Format("images/tracks/{0}|", File);

私の質問は、状態がどのように見えるべきかということです?

助けを求めて、ありがとう!

4

1 に答える 1

1

条件(If)を削除し、すべての文字列を終了文字で追加するだけです。ループの最後で、最後の文字が「|」の場合は削除できます。

あなたのコードで:

for (int i = 0; i < Request.Files.Count-1; i++)
            {
                if (Request.ContentLength != 0)
                {
                    int Size = Request.Files[i].ContentLength / 1024;
                    if (Size <= 512)
                    {
                        string LocalFile = Request.Files[i].FileName;
                        int dot = LocalFile.LastIndexOf('.');
                        string FileType = LocalFile.Substring(dot + 1);
                        if (FileType == "gif" || FileType == "jpg" || FileType == "png" || FileType == "GIF" || FileType == "JPG" || FileType == "PNG")
                        {
                            int LastIndex = LocalFile.LastIndexOf(@"\") + 1;
                            string File = LocalFile.Substring(LastIndex, LocalFile.Length - LastIndex);
                            string Path = Server.MapPath(" ../images/tracks") + "..\\" + File;
                            Request.Files[i].SaveAs(Path);
                            //if (i != Request.Files.Count - 1)
                                ImageList += string.Format("images/tracks/{0}|", File);
                            //else { ImageList += string.Format("images/tracks/{0}", File); }
                        }
                    }
                    else
                    {
                        Response.Write("The file is too big !");
                    }
                }
                else
                {
                    Response.Write("Unknown Error !");
                }
            }
           //Remove the last character
           if (ImageList.EndsWith("|")) ImageList = ImageList.Remove(ImageList.Length - 1, 1);
}
于 2013-05-09T22:35:41.820 に答える