0

次のコードを使用して、SharePointドキュメントライブラリに画像ファイルをアップロードしています。コードはローカルで正常に機能しますが、サーバーにデプロイすると、ファイルが見つからないために例外が発生します。

                String fileToUpload = FlUpldImage.PostedFile.FileName; //@"C:\Users\admin.RSS\Desktop\Photos\me_skype.jpg";
                String documentLibraryName = "SiteAssets";
                if (!System.IO.File.Exists(fileToUpload))
                    throw new FileNotFoundException("File not found.", fileToUpload);

                SPFolder myLibrary = web.Folders[documentLibraryName];

                // Prepare to upload
                Boolean replaceExistingFiles = true;
                String fileName = CheckStringNull(txtFirstName.Text) + CheckStringNull(txtLastName.Text) + CheckDateNull(txtDOB) + System.IO.Path.GetFileName(fileToUpload); ;
                if (fileName.Contains('/'))
                {
                    fileName = fileName.Replace("/", "");
                }
                if (fileName.Contains(':'))
                {
                    fileName = fileName.Replace(":", "");
                }
                FileStream fileStream = File.OpenRead(fileToUpload);
                //Upload document
                SPFile spfile = myLibrary.Files.Add(fileName, fileStream, replaceExistingFiles);
                string url = site.ToString() + "/" + spfile.ToString();
                if (url.Contains("="))
                {
                    url = url.Split('=')[1];
                }
                //Commit
                myLibrary.Update();

文字列fileuploadにはURLが含まれています。C:\Users\admin.RSS\Desktop\Photos\me.jpgこのURLは実際にはクライアントシステムであり、サーバー側のコードはファイルが見つからないため例外をスローします。この問題を処理する方法は?

アップデート:

ファイルが存在するかどうかをチェックするコード行を削除しましたFileStream fileStream = File.OpenRead(fileToUpload);c:\windows\system32\inetsrv\20120605_133145.jpg cold not be found

親切に助けてください。ありがとうございました

4

2 に答える 2

0
        if (this.fuAvatarUpload.HasFile && this.fuAvatarUpload.PostedFile.FileName.Length > 0)
        {
            string extension = Path.GetExtension(file.FileName).ToLower();
            string mimetype;
            switch (extension)
            {
                case ".png":
                case ".jpg":
                case ".gif":
                    mimetype = file.ContentType;
                    break;

                default:
                    _model.ShowMessage("We only accept .png, .jpg, and .gif!");
                    return;
            }

            if (file.ContentLength / 1000 < 1000)
            {
                Image image = Image.FromStream(file.InputStream);
                Bitmap resized = new Bitmap(image, 150, 150);
                byte[] byteArr = new byte[file.InputStream.Length];
                using (MemoryStream stream = new MemoryStream())
                {
                    resized.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                    byteArr = stream.ToArray();
                }
                file.InputStream.Read(byteArr, 0, byteArr.Length);
                profile.ImageUrl = byteArr;
                profile.UseGravatar = false;
                profileService.UpdateProfile(profile);
                this._model.ShowApprovePanel();
            }
            else
            {
                _model.ShowMessage("The file you uploaded is larger than the 1mb limit.  Please reduce the size of your file and try again.");
            }
        }
于 2012-08-09T12:06:09.400 に答える
0

ファイルをサーバーに物理的に保存し、同じ作業をするよりも、問題を解決するのに役立ちました。

于 2012-08-17T12:50:48.503 に答える