0
ファイル名が長すぎる場合は、このコードを確認します。C#のFilePathとRadUploadのテキストボックス
protected void buttonSubmit_Click(object sender, EventArgs e)
{
try
{
if (pomDoc != null)
{
//load pomContext
if (pomContext == null)
{
InitContext();
}
if (RadUpload1.UploadedFiles.Count <= 0)
{
Session[AppConstants.ERROR_MESSAGE] = ErrorsList.GetErrorMessage(
ErrorsList.ERR_P_DATE_FILE_VALID);
}
else
{
{
foreach (UploadedFile validFile in RadUpload1.UploadedFiles)
{
pomDoc = (IDbContextualRecord) Session[AppConstants.POM_DOCUMENT_NEW];
FileInfo fi = new FileInfo(validFile.FileName);
Stream fs = validFile.InputStream;
IDbContextualRecord pomFile = pomContext.CreateAndAddRecordForInsert(PomFile.t_name);
pomFile[PomFile.c_pomDocumentId] = pomDoc[PomDocument.c_id];
string targetFolder = AppSession.Current.ConfigParameters[AppConstants.UPLOAD_FILE_PATH] + "\\POM\\" +
pomDoc.GetField("id").GetString();
if (!Directory.Exists(targetFolder))
{
Directory.CreateDirectory(targetFolder);
}
long bytesOnTheStream = 0L;
try
{
DirectoryInfo dir = new DirectoryInfo(targetFolder);
if (dir.Exists == false)
dir.Create();
string fullFileName = Path.Combine(targetFolder, fi.Name);
if (fullFileName.Length > 260)
{
throw new BaseApplicationException(ErrorsList.ERR_P_UPLOAD_FILE_NAME, ErrorsList.GetErrorMessage(ErrorsList.ERR_P_UPLOAD_FILE_NAME));
}
Stream targetStream = File.OpenWrite(fullFileName);
byte[] buffer = new Byte[AppConstants.BUFF_SIZE];
int bytesRead;
// while the read method returns bytes
// keep writing them to the output stream
while ((bytesRead = fs.Read(buffer, 0, AppConstants.BUFF_SIZE)) > 0)
{
targetStream.Write(buffer, 0, bytesRead);
bytesOnTheStream += bytesRead;
}
fs.Close();
targetStream.Close();
}
catch (Exception ex)
{
throw;
}
ここでの問題は、それがfile.Inコードビハインドテキストボックスの名前だけは一意の名前を持っていない示し、テキストボックスにアップロードされたファイルのフルパスが表示されないということです。これどうやってするの ?