Другим случаем, когда NullReferenceExceptions
может случиться, является (неправильное) использование оператора as
:
class Book {
public string Name { get; set; }
}
class Car { }
Car mycar = new Car();
Book mybook = mycar as Book; // Incompatible conversion --> mybook = null
Console.WriteLine(mybook.Name); // NullReferenceException
Здесь Book
и Car
являются несовместимыми типами; a Car
не может быть преобразован / передан в Book
. Когда этот сбой завершается неудачно, as
возвращает null
. Используя mybook
после этого, вы вызываете NullReferenceException
.
В общем случае вы должны использовать cast или as
, как показано ниже:
Если вы ожидаете преобразования типа в всегда преуспевает (т. е. вы знаете, какой объект должен быть впереди времени), тогда вы должны использовать cast:
ComicBook cb = (ComicBook)specificBook;
Если вы не уверены в типе, но хотите попробовать , чтобы использовать его как определенный тип, затем используйте as
:
ComicBook cb = specificBook as ComicBook;
if (cb != null) {
// ...
}
name
относится к имени файла на стороне клиента. Чтобы получить имя файла (включая полный путь) на стороне сервера, вам необходимо использовать tmp_name
:
$handle = fopen($_FILES["UploadFileName"]["tmp_name"], 'r');
Я использую вот так ...
<?php
$NameOriginal = $_FILES["UploadFileName"]['name'];
$Typo_Image = $_FILES["UploadFileName"]['type'];
$name_Temp = $_FILES["UploadFileName"]['tmp_name'];
?>
$target='uploads/'.basename($_FILES['UploadFileName']['name']);
if(move_uploaded_file($_FILES['UploadFileName']['tmp_name'],$target)) {
//Insert into your db
$fp = fopen($target, "r");
}
Используйте следующий код,
$handle = fopen($_FILES["UploadFileName"]["tmp_name"], 'r');
Я написал вот так:
$filePath = realpath($_FILES["file"]["tmp_name"]);
Это дало мне полный путь к загруженному файлу в PHP. Если вы находите ошибку 0 байтов в загрузке файла, просто измените эту строку длины содержимого следующим образом
header("Content-Length: ".filesize($filePath));
, где $ filePath должен быть абсолютным путем для файла, а не только для дескриптора файла.