0

画像の保存方法に非常に奇妙な問題があります。まず、方法は次のとおりです。

        public static void uploadImageToServer(string savePath, HttpPostedFile imageToUpload, bool overwrite)
        {
                byte[] myData = new Byte[imageToUpload.ContentLength];
                imageToUpload.InputStream.Read(myData, 0, imageToUpload.ContentLength);

                FileStream newFile = new FileStream(savePath, FileMode.Create);
                newFile.Write(myData, 0, myData.Length);
                newFile.Close();
}

入力パラメーターからわかるように、このメソッドは FileUpload コントロールと連携して機能します。現在、両方とも FileUpload コントロールを持つ 2 つのページからこのメソッドを使用しています。一方のページでは画像がファイルをアップロードしますが、他方のページではファイルが破損します。

なぜ画像が壊れているのか、私は本当に途方に暮れています。同じ画像、同じ方法、同じ入力コントロールを使用しています。

これをデバッグする方法はありますか?

4

1 に答える 1

2

alexnの答えを盗むつもりです<_<

あなたはそれを複雑にしすぎています。提供されている組み込みのFileUpload::SaveAs(save_path)を使用するだけです。

このメソッドを使用するServer.MapPath()と、ルートディレクトリへの動的パスを取得し、そこからファイル名を追加できます。
なぜそのエラーが発生するのかわかりません。私の最善の推測は、あなたsavePathが壊れている(またはそれに追加されたファイル名/拡張子)か、バイトが完全に読み書きされていないかのいずれかです..とにかく、私が説明した方法を使用してそのエラーを取得するべきではありません(ファイル拡張子を台無しにしないでください:)。

于 2012-06-08T22:15:13.553 に答える