<br />
<b>Deprecated</b>:  YoastSEO_Vendor\Symfony\Component\DependencyInjection\Container::__construct(): Implicitly marking parameter $parameterBag as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/symfony/dependency-injection/Container.php</b> on line <b>60</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\League\OAuth2\Client\Provider\AbstractProvider::authorize(): Implicitly marking parameter $redirectHandler as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/league/oauth2-client/src/Provider/AbstractProvider.php</b> on line <b>416</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\GuzzleHttp\Client::getConfig(): Implicitly marking parameter $option as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/guzzlehttp/guzzle/src/Client.php</b> on line <b>181</b><br />
<br />
<b>Deprecated</b>:  YoastSEO_Vendor\GuzzleHttp\ClientInterface::getConfig(): Implicitly marking parameter $option as nullable is deprecated, the explicit nullable type must be used instead in <b>/home/nubelus/sharedove/adisjugo/wp-content/plugins/wordpress-seo/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php</b> on line <b>77</b><br />
{"id":99,"date":"2009-10-29T14:36:00","date_gmt":"2009-10-29T13:36:00","guid":{"rendered":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/"},"modified":"2009-10-29T14:36:00","modified_gmt":"2009-10-29T13:36:00","slug":"validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library","status":"publish","type":"post","link":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/","title":{"rendered":"Validate that file name before uploading a file to the SharePoint library!"},"content":{"rendered":"<p>SharePoint has hard limits on the characters which can be used in the file names. But somehow, I have seen a lot of SharePoint solutions which do not consider that limits, and the error messages about not allowed characters in the file names are popping all the time.<\/p>\n<p>Microsoft has published the whole list of not allowed characters here:<\/p>\n<p><a href=\"http:\/\/support.microsoft.com\/kb\/905231\">http:\/\/support.microsoft.com\/kb\/905231<\/a><\/p>\n<p>Obviously, the only right way before storing the file in the SharePoint library in custom solution is to validate its name before the upload operation. I\u2019ve seen many different ways to validate the \u00a0name, some better and some worse, but it\u2019s somehow not that well known that there is a <em>SPEncode<\/em> class in <em>Microsoft.SharePoint.Utilities<\/em> namespace which can <strong>really<\/strong> help us to implement the file name validation which covers all of the cases which SharePoint does not like.<\/p>\n<p><!--more--><\/p>\n<p>Take a look at the <em>SPEncode<\/em> class. Hence, take a look at the whole Microsoft.SharePoint.Utilities namepace, there are some cool things there \ud83d\ude42<\/p>\n<p>For now a nice validation method based on it:<\/p>\n<pre class=\"brush: csharp; title: Code sample:; notranslate\" title=\"Code sample:\">\n\/\/\/ &lt;summary&gt;\n\/\/\/ Validates a file name before upload to the sharepoint library.\n\/\/\/ &lt;\/summary&gt;\n\/\/\/ &lt;param name=&quot;fileName&quot;&gt;Original file name&lt;\/param&gt;\n\/\/\/ &lt;returns&gt;Clean file name&lt;\/returns&gt;\nprivate string cleanFileName(string fileName)\n{\n    string ext = Path.GetExtension(fileName);\n    string name = Path.GetFileNameWithoutExtension(fileName);\n\n     \/\/\n     \/\/first remove double fullstops (..)\n     while (name.Contains(&quot;..&quot;))\n     {\n         name = name.Replace(&quot;..&quot;, &quot;__&quot;);\n     }\n\n     \/\/\n     \/\/name only is not allowed to end with fullstop (.)\n     if (name.EndsWith(&quot;.&quot;))\n     {\n         name = name.Substring(0, name.Length - 1) + &quot;_&quot;;\n     }\n\n     \/\/\n     \/\/now use &quot;SPEncode.IsLegalCharInUrl()&quot; to remove characters which sharepoint does not like\n     char&#x5B;] filenameChars = name.ToCharArray();\n     foreach (char c in filenameChars)\n     {\n         if (!SPEncode.IsLegalCharInUrl(c)) name = name.Replace(c.ToString(), &quot;&quot;);\n     }\n\n     \/\/                                        \n     \/\/return clean filename\n\t\treturn string.Format(&quot;{0}{1}&quot;, name, ext);return string.Format(&quot;{0}{1}&quot;, name, ext);       \n\t\t\n}\n                                          \n<\/pre>\n<div class=\"fb-background-color\">\n\t\t\t  <div \n\t\t\t  \tclass = \"fb-comments\" \n\t\t\t  \tdata-href = \"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/\"\n\t\t\t  \tdata-numposts = \"59\"\n\t\t\t  \tdata-lazy = \"true\"\n\t\t\t\tdata-colorscheme = \"light\"\n\t\t\t\tdata-order-by = \"time\"\n\t\t\t\tdata-mobile=true>\n\t\t\t  <\/div><\/div>\n\t\t  <style>\n\t\t    .fb-background-color {\n\t\t\t\tbackground:  !important;\n\t\t\t}\n\t\t\t.fb_iframe_widget_fluid_desktop iframe {\n\t\t\t    width: 100% !important;\n\t\t\t}\n\t\t  <\/style>\n\t\t  ","protected":false},"excerpt":{"rendered":"<p>SharePoint has hard limits on the characters which can be used in the file names. But somehow, I have seen a lot of SharePoint solutions which do not consider that limits, and the error messages about not allowed characters in the file names are popping all the time. Microsoft has published the whole list of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[11],"tags":[54,55],"class_list":["post-99","post","type-post","status-publish","format-standard","hentry","category-development","tag-server-object-model","tag-sharepoint"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Validate that file name before uploading a file to the SharePoint library! - Adis Jugo blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Validate that file name before uploading a file to the SharePoint library! - Adis Jugo blog\" \/>\n<meta property=\"og:description\" content=\"SharePoint has hard limits on the characters which can be used in the file names. But somehow, I have seen a lot of SharePoint solutions which do not consider that limits, and the error messages about not allowed characters in the file names are popping all the time. Microsoft has published the whole list of [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/\" \/>\n<meta property=\"og:site_name\" content=\"Adis Jugo blog\" \/>\n<meta property=\"article:published_time\" content=\"2009-10-29T13:36:00+00:00\" \/>\n<meta name=\"author\" content=\"adis.jugo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"adis.jugo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/\",\"name\":\"Validate that file name before uploading a file to the SharePoint library! - Adis Jugo blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#website\"},\"datePublished\":\"2009-10-29T13:36:00+00:00\",\"author\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.sharedove.com\/adisjugo\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Validate that file name before uploading a file to the SharePoint library!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#website\",\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/\",\"name\":\"Adis Jugo blog\",\"description\":\"The Southern Side\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.sharedove.com\/adisjugo\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c\",\"name\":\"adis.jugo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g\",\"caption\":\"adis.jugo\"},\"url\":\"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/author\/adisjugo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Validate that file name before uploading a file to the SharePoint library! - Adis Jugo blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/","og_locale":"en_US","og_type":"article","og_title":"Validate that file name before uploading a file to the SharePoint library! - Adis Jugo blog","og_description":"SharePoint has hard limits on the characters which can be used in the file names. But somehow, I have seen a lot of SharePoint solutions which do not consider that limits, and the error messages about not allowed characters in the file names are popping all the time. Microsoft has published the whole list of [&hellip;]","og_url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/","og_site_name":"Adis Jugo blog","article_published_time":"2009-10-29T13:36:00+00:00","author":"adis.jugo","twitter_card":"summary_large_image","twitter_misc":{"Written by":"adis.jugo","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/","url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/","name":"Validate that file name before uploading a file to the SharePoint library! - Adis Jugo blog","isPartOf":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/#website"},"datePublished":"2009-10-29T13:36:00+00:00","author":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c"},"breadcrumb":{"@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/2009\/10\/29\/validate-that-file-name-before-uploading-a-file-to-the-sharepoint-library\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.sharedove.com\/adisjugo\/"},{"@type":"ListItem","position":2,"name":"Validate that file name before uploading a file to the SharePoint library!"}]},{"@type":"WebSite","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#website","url":"https:\/\/blog.sharedove.com\/adisjugo\/","name":"Adis Jugo blog","description":"The Southern Side","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.sharedove.com\/adisjugo\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/a5ca63552094ce9d5a0440f3a1ac9a4c","name":"adis.jugo","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.sharedove.com\/adisjugo\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc5a23cf1bd0b9d8401c9dd65c6c141041ec0c6e37eedbb511779e4a40a198fd?s=96&d=mm&r=g","caption":"adis.jugo"},"url":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/author\/adisjugo\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts\/99","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/comments?post=99"}],"version-history":[{"count":0,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/posts\/99\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/media?parent=99"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/categories?post=99"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.sharedove.com\/adisjugo\/index.php\/wp-json\/wp\/v2\/tags?post=99"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}